GNU Bison XML Automaton Report

input grammar: cplusplus.y

Table of Contents

Reductions

Nonterminals useless in grammar

Terminals unused in grammar

Rules useless in grammar

Conflicts

State 0 conflicts: 41 shift/reduce, 3 reduce/reduce State 2 conflicts: 39 shift/reduce, 3 reduce/reduce State 4 conflicts: 1 reduce/reduce State 10 conflicts: 1 shift/reduce State 22 conflicts: 3 shift/reduce, 1 reduce/reduce State 23 conflicts: 1 shift/reduce State 25 conflicts: 1 shift/reduce State 50 conflicts: 36 shift/reduce, 3 reduce/reduce State 51 conflicts: 8 shift/reduce, 5 reduce/reduce State 54 conflicts: 3 shift/reduce State 58 conflicts: 3 shift/reduce, 2 reduce/reduce State 59 conflicts: 3 shift/reduce State 61 conflicts: 40 shift/reduce, 3 reduce/reduce State 63 conflicts: 1 shift/reduce State 75 conflicts: 1 reduce/reduce State 89 conflicts: 1 shift/reduce, 1 reduce/reduce State 96 conflicts: 100 reduce/reduce State 101 conflicts: 39 shift/reduce, 3 reduce/reduce State 114 conflicts: 39 shift/reduce, 3 reduce/reduce State 116 conflicts: 61 reduce/reduce State 118 conflicts: 39 shift/reduce, 3 reduce/reduce State 119 conflicts: 5 shift/reduce, 1 reduce/reduce State 121 conflicts: 1 shift/reduce State 124 conflicts: 1 shift/reduce State 129 conflicts: 2 shift/reduce State 132 conflicts: 1 shift/reduce, 1 reduce/reduce State 134 conflicts: 2 shift/reduce State 135 conflicts: 40 shift/reduce, 3 reduce/reduce State 137 conflicts: 1 shift/reduce State 141 conflicts: 1 shift/reduce State 146 conflicts: 2 shift/reduce State 147 conflicts: 39 shift/reduce, 3 reduce/reduce State 152 conflicts: 3 shift/reduce State 158 conflicts: 3 shift/reduce State 167 conflicts: 2 shift/reduce State 168 conflicts: 3 shift/reduce State 171 conflicts: 1 shift/reduce, 1 reduce/reduce State 172 conflicts: 1 shift/reduce State 174 conflicts: 3 shift/reduce State 175 conflicts: 3 shift/reduce, 1 reduce/reduce State 177 conflicts: 1 shift/reduce State 178 conflicts: 1 shift/reduce State 179 conflicts: 1 reduce/reduce State 180 conflicts: 2 shift/reduce State 186 conflicts: 1 shift/reduce State 190 conflicts: 1 shift/reduce State 195 conflicts: 39 shift/reduce, 3 reduce/reduce State 198 conflicts: 1 shift/reduce State 200 conflicts: 100 reduce/reduce State 202 conflicts: 1 shift/reduce State 207 conflicts: 2 shift/reduce State 213 conflicts: 39 shift/reduce, 3 reduce/reduce State 218 conflicts: 39 shift/reduce, 3 reduce/reduce State 225 conflicts: 1 shift/reduce State 227 conflicts: 1 shift/reduce State 228 conflicts: 1 shift/reduce State 232 conflicts: 1 shift/reduce State 237 conflicts: 2 reduce/reduce State 244 conflicts: 2 shift/reduce State 246 conflicts: 1 shift/reduce State 247 conflicts: 2 shift/reduce State 248 conflicts: 2 shift/reduce State 251 conflicts: 2 shift/reduce State 252 conflicts: 2 shift/reduce State 253 conflicts: 2 shift/reduce State 260 conflicts: 2 shift/reduce State 261 conflicts: 2 shift/reduce State 263 conflicts: 2 shift/reduce State 281 conflicts: 2 shift/reduce State 282 conflicts: 1 shift/reduce State 284 conflicts: 1 shift/reduce State 286 conflicts: 1 shift/reduce, 1 reduce/reduce State 289 conflicts: 1 shift/reduce State 294 conflicts: 1 shift/reduce State 297 conflicts: 1 reduce/reduce State 303 conflicts: 2 shift/reduce State 318 conflicts: 1 shift/reduce State 324 conflicts: 1 shift/reduce State 325 conflicts: 1 shift/reduce State 326 conflicts: 2 shift/reduce State 327 conflicts: 1 shift/reduce State 329 conflicts: 2 shift/reduce State 332 conflicts: 2 shift/reduce State 333 conflicts: 4 shift/reduce State 336 conflicts: 1 shift/reduce State 343 conflicts: 1 shift/reduce State 346 conflicts: 2 shift/reduce State 355 conflicts: 5 shift/reduce, 2 reduce/reduce State 362 conflicts: 3 shift/reduce, 1 reduce/reduce State 376 conflicts: 2 shift/reduce State 377 conflicts: 2 shift/reduce State 378 conflicts: 2 shift/reduce State 385 conflicts: 3 shift/reduce State 392 conflicts: 1 shift/reduce State 396 conflicts: 1 shift/reduce State 401 conflicts: 2 shift/reduce State 404 conflicts: 3 shift/reduce State 406 conflicts: 3 reduce/reduce State 407 conflicts: 1 shift/reduce State 412 conflicts: 24 shift/reduce, 3 reduce/reduce State 413 conflicts: 2 shift/reduce, 1 reduce/reduce State 414 conflicts: 1 shift/reduce State 418 conflicts: 5 shift/reduce, 1 reduce/reduce State 421 conflicts: 2 shift/reduce State 422 conflicts: 1 shift/reduce State 423 conflicts: 5 shift/reduce, 1 reduce/reduce State 430 conflicts: 1 shift/reduce State 431 conflicts: 2 shift/reduce State 436 conflicts: 2 shift/reduce State 438 conflicts: 32 shift/reduce State 444 conflicts: 1 shift/reduce State 478 conflicts: 1 shift/reduce State 493 conflicts: 1 shift/reduce State 498 conflicts: 1 shift/reduce State 500 conflicts: 6 shift/reduce State 505 conflicts: 100 reduce/reduce State 510 conflicts: 2 shift/reduce State 511 conflicts: 2 shift/reduce State 512 conflicts: 2 shift/reduce State 513 conflicts: 2 shift/reduce State 514 conflicts: 2 shift/reduce State 518 conflicts: 2 shift/reduce State 520 conflicts: 2 shift/reduce State 523 conflicts: 2 shift/reduce State 524 conflicts: 1 shift/reduce State 525 conflicts: 2 shift/reduce State 526 conflicts: 2 shift/reduce State 527 conflicts: 2 shift/reduce State 528 conflicts: 2 shift/reduce State 529 conflicts: 2 shift/reduce State 530 conflicts: 2 shift/reduce State 531 conflicts: 2 shift/reduce State 532 conflicts: 2 shift/reduce State 534 conflicts: 2 shift/reduce State 536 conflicts: 5 shift/reduce, 1 reduce/reduce State 541 conflicts: 2 shift/reduce State 542 conflicts: 2 shift/reduce State 554 conflicts: 2 shift/reduce State 555 conflicts: 2 shift/reduce State 556 conflicts: 2 shift/reduce State 557 conflicts: 2 shift/reduce State 558 conflicts: 2 shift/reduce State 559 conflicts: 2 shift/reduce State 561 conflicts: 2 shift/reduce State 562 conflicts: 2 shift/reduce State 563 conflicts: 2 shift/reduce State 564 conflicts: 2 shift/reduce State 565 conflicts: 2 shift/reduce State 570 conflicts: 2 shift/reduce State 571 conflicts: 2 shift/reduce State 572 conflicts: 2 shift/reduce State 573 conflicts: 2 shift/reduce State 574 conflicts: 2 shift/reduce State 575 conflicts: 2 shift/reduce State 576 conflicts: 2 shift/reduce State 578 conflicts: 2 shift/reduce State 594 conflicts: 39 shift/reduce, 3 reduce/reduce State 606 conflicts: 2 shift/reduce State 616 conflicts: 4 shift/reduce State 623 conflicts: 2 shift/reduce State 625 conflicts: 3 shift/reduce, 1 reduce/reduce State 626 conflicts: 3 shift/reduce State 627 conflicts: 1 shift/reduce State 630 conflicts: 1 shift/reduce State 636 conflicts: 2 reduce/reduce State 639 conflicts: 1 shift/reduce State 652 conflicts: 2 shift/reduce State 653 conflicts: 1 shift/reduce State 658 conflicts: 2 shift/reduce State 661 conflicts: 2 shift/reduce State 673 conflicts: 2 shift/reduce State 674 conflicts: 1 shift/reduce State 676 conflicts: 2 shift/reduce State 678 conflicts: 2 shift/reduce State 681 conflicts: 1 shift/reduce State 685 conflicts: 1 reduce/reduce State 687 conflicts: 1 shift/reduce State 689 conflicts: 2 shift/reduce, 1 reduce/reduce State 692 conflicts: 5 shift/reduce State 699 conflicts: 2 shift/reduce State 701 conflicts: 2 shift/reduce State 703 conflicts: 3 shift/reduce, 2 reduce/reduce State 704 conflicts: 1 shift/reduce State 739 conflicts: 2 shift/reduce State 742 conflicts: 2 shift/reduce State 748 conflicts: 1 shift/reduce State 749 conflicts: 1 shift/reduce State 755 conflicts: 2 shift/reduce State 756 conflicts: 100 reduce/reduce State 760 conflicts: 6 shift/reduce State 762 conflicts: 2 shift/reduce State 773 conflicts: 2 shift/reduce State 775 conflicts: 2 shift/reduce State 777 conflicts: 2 shift/reduce State 782 conflicts: 1 shift/reduce State 783 conflicts: 1 shift/reduce State 789 conflicts: 1 shift/reduce State 792 conflicts: 37 shift/reduce, 3 reduce/reduce State 802 conflicts: 1 reduce/reduce State 803 conflicts: 1 shift/reduce State 821 conflicts: 1 reduce/reduce State 827 conflicts: 39 shift/reduce, 3 reduce/reduce State 847 conflicts: 1 shift/reduce State 862 conflicts: 1 reduce/reduce State 864 conflicts: 2 shift/reduce, 2 reduce/reduce State 873 conflicts: 1 shift/reduce, 1 reduce/reduce State 880 conflicts: 2 shift/reduce State 885 conflicts: 2 shift/reduce State 905 conflicts: 1 shift/reduce State 906 conflicts: 2 shift/reduce State 908 conflicts: 2 shift/reduce State 915 conflicts: 4 shift/reduce State 918 conflicts: 5 shift/reduce State 924 conflicts: 1 shift/reduce State 934 conflicts: 1 shift/reduce State 942 conflicts: 1 shift/reduce State 943 conflicts: 2 shift/reduce State 944 conflicts: 2 shift/reduce State 949 conflicts: 2 shift/reduce State 961 conflicts: 2 shift/reduce State 963 conflicts: 2 shift/reduce State 964 conflicts: 1 shift/reduce State 965 conflicts: 3 shift/reduce State 966 conflicts: 2 shift/reduce State 968 conflicts: 2 shift/reduce State 971 conflicts: 36 shift/reduce, 3 reduce/reduce State 972 conflicts: 2 shift/reduce State 977 conflicts: 37 shift/reduce, 3 reduce/reduce State 980 conflicts: 2 shift/reduce State 988 conflicts: 39 shift/reduce, 3 reduce/reduce State 1008 conflicts: 1 reduce/reduce State 1018 conflicts: 1 shift/reduce State 1024 conflicts: 3 shift/reduce State 1027 conflicts: 1 shift/reduce State 1029 conflicts: 1 shift/reduce State 1030 conflicts: 1 shift/reduce State 1038 conflicts: 1 shift/reduce State 1050 conflicts: 4 shift/reduce State 1051 conflicts: 2 shift/reduce State 1052 conflicts: 2 shift/reduce State 1056 conflicts: 2 shift/reduce State 1059 conflicts: 1 shift/reduce, 1 reduce/reduce State 1062 conflicts: 27 shift/reduce, 3 reduce/reduce State 1067 conflicts: 2 shift/reduce State 1068 conflicts: 2 shift/reduce State 1069 conflicts: 2 shift/reduce State 1070 conflicts: 2 shift/reduce State 1075 conflicts: 2 shift/reduce State 1079 conflicts: 2 shift/reduce State 1083 conflicts: 3 shift/reduce State 1085 conflicts: 2 shift/reduce State 1090 conflicts: 2 reduce/reduce State 1091 conflicts: 1 shift/reduce State 1092 conflicts: 2 shift/reduce State 1096 conflicts: 37 shift/reduce, 3 reduce/reduce State 1100 conflicts: 2 shift/reduce State 1102 conflicts: 2 shift/reduce State 1137 conflicts: 2 shift/reduce State 1139 conflicts: 1 shift/reduce State 1142 conflicts: 2 shift/reduce State 1146 conflicts: 1 shift/reduce, 2 reduce/reduce State 1155 conflicts: 39 shift/reduce, 3 reduce/reduce State 1168 conflicts: 1 shift/reduce State 1171 conflicts: 2 shift/reduce State 1176 conflicts: 37 shift/reduce, 3 reduce/reduce State 1181 conflicts: 37 shift/reduce, 3 reduce/reduce State 1183 conflicts: 19 shift/reduce, 3 reduce/reduce State 1185 conflicts: 37 shift/reduce, 39 reduce/reduce State 1195 conflicts: 61 shift/reduce, 41 reduce/reduce State 1217 conflicts: 1 shift/reduce State 1218 conflicts: 1 shift/reduce State 1236 conflicts: 2 shift/reduce State 1242 conflicts: 2 shift/reduce State 1244 conflicts: 19 shift/reduce, 39 reduce/reduce State 1249 conflicts: 37 shift/reduce, 3 reduce/reduce State 1250 conflicts: 61 shift/reduce, 41 reduce/reduce State 1253 conflicts: 19 shift/reduce, 3 reduce/reduce State 1262 conflicts: 1 shift/reduce State 1265 conflicts: 1 shift/reduce State 1268 conflicts: 1 shift/reduce State 1270 conflicts: 3 shift/reduce State 1271 conflicts: 37 shift/reduce, 3 reduce/reduce State 1272 conflicts: 2 shift/reduce State 1275 conflicts: 2 shift/reduce State 1278 conflicts: 19 shift/reduce, 3 reduce/reduce State 1279 conflicts: 1 shift/reduce State 1282 conflicts: 2 shift/reduce State 1286 conflicts: 1 shift/reduce State 1290 conflicts: 2 shift/reduce State 1291 conflicts: 3 shift/reduce State 1292 conflicts: 2 shift/reduce State 1294 conflicts: 37 shift/reduce, 3 reduce/reduce State 1295 conflicts: 37 shift/reduce, 3 reduce/reduce State 1296 conflicts: 4 shift/reduce State 1301 conflicts: 1 reduce/reduce State 1302 conflicts: 1 reduce/reduce State 1307 conflicts: 37 shift/reduce, 3 reduce/reduce State 1314 conflicts: 37 shift/reduce, 3 reduce/reduce State 1316 conflicts: 37 shift/reduce, 3 reduce/reduce State 1317 conflicts: 1 shift/reduce State 1321 conflicts: 37 shift/reduce, 3 reduce/reduce

Grammar

0 $accepttranslation-unit $end 1 COMMA-opt → %empty 2 | COMMA 3 CONSTEXPR-opt → %empty 4 | CONSTEXPR 5 ELLIPSIS-opt → %empty 6 | ELLIPSIS 7 EXPORT-opt → %empty 8 | EXPORT 9 EXTERN-opt → %empty 10 | EXTERN 11 IDENTIFIER-opt → %empty 12 | IDENTIFIER 13 INLINE-opt → %empty 14 | INLINE 15 NOEXCEPT-opt → %empty 16 | NOEXCEPT 17 NOT-opt → %empty 18 | NOT 19 SCOPE-opt → %empty 20 | SCOPE 21 TEMPLATE-opt → %empty 22 | TEMPLATE 23 THIS-opt → %empty 24 | THIS 25 TYPENAME-opt → %empty 26 | TYPENAME 27 VIRTUAL-opt → %empty 28 | VIRTUAL 29 abstract-declaratorptr-abstract-declarator 30 | noptr-abstract-declarator-opt parameters-and-qualifiers trailing-return-type 31 | abstract-pack-declarator 32 abstract-declarator-opt → %empty 33 | abstract-declarator 34 abstract-pack-declaratornoptr-abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 36 access-specifierPRIVATE 37 | PROTECTED 38 | PUBLIC 39 access-specifier-opt → %empty 40 | access-specifier 41 additive-expressionmultiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 44 alias-declarationUSING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 45 alignment-specifierALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 47 and-expressionequality-expression 48 | and-expression AND equality-expression 49 asm-declarationattribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 50 assignment-expressionconditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 54 assignment-expression-opt → %empty 55 | assignment-expression 56 assignment-operatorEQ 57 | MULT_EQ 58 | DIV_EQ 59 | MOD_EQ 60 | PLUS_EQ 61 | MINUS_EQ 62 | RSHIFT_EQ 63 | LSHIFT_EQ 64 | AND_EQ 65 | XOR_EQ 66 | OR_EQ 67 attributeattribute-token attribute-argument-clause-opt 68 attribute-argument-clauseOPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 69 attribute-argument-clause-opt → %empty 70 | attribute-argument-clause 71 attribute-declarationattribute-specifier-seq SEMICOLON 72 attribute-listattribute-opt 73 | attribute-list COMMA attribute-opt 74 | attribute ELLIPSIS 75 | attribute-list COMMA attribute ELLIPSIS 76 attribute-namespaceIDENTIFIER 77 attribute-opt → %empty 78 | attribute 79 attribute-scoped-tokenattribute-namespace SCOPE IDENTIFIER 80 attribute-specifierOPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt → %empty 84 | attribute-specifier-seq 85 attribute-tokenIDENTIFIER 86 | attribute-scoped-token 87 attribute-using-prefixUSING attribute-namespace COLON 88 attribute-using-prefix-opt → %empty 89 | attribute-using-prefix 90 await-expressionCO_AWAIT cast-expression 91 balanced-tokenOPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 92 | OPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE 93 | OPEN_BRACE balanced-token-seq-opt CLOSE_BRACE 94 | BALANCED_TOKEN 95 balanced-token-seqbalanced-token 96 | balanced-token-seq balanced-token 97 balanced-token-seq-opt → %empty 98 | balanced-token-seq 99 base-clauseCOLON base-specifier-list 100 base-clause-opt → %empty 101 | base-clause 102 base-specifierattribute-specifier-seq-opt class-or-decltype 103 | attribute-specifier-seq-opt VIRTUAL access-specifier-opt class-or-decltype 104 | attribute-specifier-seq-opt access-specifier VIRTUAL-opt class-or-decltype 105 base-specifier-listbase-specifier ELLIPSIS-opt 106 | base-specifier-list COMMA base-specifier ELLIPSIS-opt 107 block-declarationsimple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 116 brace-or-equal-initializerEQ initializer-clause 117 | braced-init-list 118 brace-or-equal-initializer-opt → %empty 119 | brace-or-equal-initializer 120 braced-init-listOPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 123 capturesimple-capture 124 | init-capture 125 capture-defaultAND 126 | EQ 127 capture-listcapture 128 | capture-list COMMA capture 129 cast-expressionunary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 131 class-headclass-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 133 class-head-namenested-name-specifier-opt class-name 134 class-keyCLASS 135 | STRUCT 136 | UNION 137 class-nameIDENTIFIER 138 | simple-template-id 139 class-or-decltypenested-name-specifier-opt type-name 140 | nested-name-specifier TEMPLATE simple-template-id 141 | decltype-specifier 142 class-specifierclass-head OPEN_BRACE member-specification-opt CLOSE_BRACE 143 class-virt-specifierFINAL 144 class-virt-specifier-opt → %empty 145 | class-virt-specifier 146 compare-expressionshift-expression 147 | compare-expression SPACESHIP shift-expression 148 compound-requirementOPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON 149 compound-statementOPEN_BRACE statement-seq-opt CLOSE_BRACE 150 concept-definitionCONCEPT concept-name EQ constraint-expression SEMICOLON 151 concept-nameIDENTIFIER 152 conditionexpression 153 | attribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer 154 condition-opt → %empty 155 | condition 156 conditional-expressionlogical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expressionconditional-expression 159 constant-expression-opt → %empty 160 | constant-expression 161 constraint-expressionlogical-or-expression 162 constraint-logical-and-expressionprimary-expression 163 | constraint-logical-and-expression AND_AND primary-expression 164 constraint-logical-or-expressionconstraint-logical-and-expression 165 | constraint-logical-or-expression OR_OR constraint-logical-and-expression 166 conversion-declaratorptr-operator conversion-declarator-opt 167 conversion-declarator-opt → %empty 168 | conversion-declarator 169 conversion-function-idOPERATOR conversion-type-id 170 conversion-type-idtype-specifier-seq conversion-declarator-opt 171 coroutine-return-statementCO_RETURN expr-or-braced-init-list-opt SEMICOLON 172 ctor-initializerCOLON mem-initializer-list 173 ctor-initializer-opt → %empty 174 | ctor-initializer 175 cv-qualifierCONST 176 | VOLATILE 177 cv-qualifier-seqcv-qualifier cv-qualifier-seq-opt 178 cv-qualifier-seq-opt → %empty 179 | cv-qualifier-seq 180 decl-specifierstorage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seqdecl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 191 decl-specifier-seq-opt → %empty 192 | decl-specifier-seq 193 declarationblock-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seqdeclaration 207 | declaration-seq declaration 208 declaration-seq-opt → %empty 209 | declaration-seq 210 declaration-statementblock-declaration 211 declaratorptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-idELLIPSIS-opt id-expression 214 decltype-specifierDECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 216 defining-type-iddefining-type-specifier-seq abstract-declarator-opt 217 defining-type-specifiertype-specifier 218 | class-specifier 219 | enum-specifier 220 defining-type-specifier-seqdefining-type-specifier attribute-specifier-seq-opt 221 | defining-type-specifier defining-type-specifier-seq 222 delete-expressionSCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 224 designated-initializer-clausedesignator brace-or-equal-initializer 225 designated-initializer-listdesignated-initializer-clause 226 | designated-initializer-list COMMA designated-initializer-clause 227 designatorDOT IDENTIFIER 228 elaborated-enum-specifierENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declarationSEMICOLON 234 enclosing-namespace-specifierIDENTIFIER 235 | enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER 236 enum-baseCOLON type-specifier-seq 237 enum-base-opt → %empty 238 | enum-base 239 enum-headenum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 240 enum-head-namenested-name-specifier-opt IDENTIFIER 241 enum-head-name-opt → %empty 242 | enum-head-name 243 enum-keyENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-nameIDENTIFIER 247 enum-specifierenum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 249 enumeratorIDENTIFIER attribute-specifier-seq-opt 250 enumerator-definitionenumerator 251 | enumerator EQ constant-expression 252 enumerator-listenumerator-definition 253 | enumerator-list COMMA enumerator-definition 254 enumerator-list-opt → %empty 255 | enumerator-list 256 equality-expressionrelational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 259 exception-declarationattribute-specifier-seq-opt type-specifier-seq declarator 260 | attribute-specifier-seq-opt type-specifier-seq abstract-declarator-opt 261 | ELLIPSIS 262 exclusive-or-expressionand-expression 263 | exclusive-or-expression XOR and-expression 264 explicit-instantiationEXTERN-opt TEMPLATE declaration 265 explicit-specializationTEMPLATE LESS GREATER declaration 266 explicit-specifierEXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt → %empty 269 | explicit-specifier 270 export-declarationEXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 273 expr-or-braced-init-listexpression 274 | braced-init-list 275 expr-or-braced-init-list-opt → %empty 276 | expr-or-braced-init-list 277 expressionassignment-expression 278 | expression COMMA assignment-expression 279 expression-listinitializer-list 280 expression-list-opt → %empty 281 | expression-list 282 expression-opt → %empty 283 | expression 284 expression-statementexpression-opt SEMICOLON 285 fold-expressionOPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 288 fold-operatorPLUS 289 | MINUS 290 | MULT 291 | DIV 292 | MOD 293 | XOR 294 | AND 295 | OR 296 | LSHIFT 297 | RSHIFT 298 | PLUS_EQ 299 | MINUS_EQ 300 | MULT_EQ 301 | DIV_EQ 302 | MOD_EQ 303 | XOR_EQ 304 | AND_EQ 305 | OR_EQ 306 | LSHIFT_EQ 307 | RSHIFT_EQ 308 | EQ 309 | EQ_EQ 310 | NOT_EQ 311 | LESS 312 | GREATER 313 | LESS_EQ 314 | GREATER_EQ 315 | AND_AND 316 | OR_OR 317 | COMMA 318 | DOT_STAR 319 | DEREF_STAR 320 for-range-declarationattribute-specifier-seq-opt decl-specifier-seq declarator 321 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE 322 for-range-initializerexpr-or-braced-init-list 323 function-bodyctor-initializer-opt compound-statement 324 | function-try-block 325 | EQ DEFAULT SEMICOLON 326 | EQ DELETE SEMICOLON 327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifierVIRTUAL 330 | explicit-specifier 331 function-try-blockTRY ctor-initializer-opt compound-statement handler-seq 332 global-module-fragmentMODULE SEMICOLON declaration-seq-opt 333 global-module-fragment-opt → %empty 334 | global-module-fragment 335 handlerCATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement 336 handler-seqhandler handler-seq-opt 337 handler-seq-opt → %empty 338 | handler-seq 339 header-nameHEADER_NAME 340 id-expressionunqualified-id 341 | qualified-id 342 identifier-listIDENTIFIER 343 | identifier-list COMMA IDENTIFIER 344 inclusive-or-expressionexclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 346 init-captureELLIPSIS-opt IDENTIFIER initializer 347 | AND ELLIPSIS-opt IDENTIFIER initializer 348 init-declaratordeclarator initializer-opt 349 | declarator requires-clause 350 init-declarator-listinit-declarator 351 | init-declarator-list COMMA init-declarator 352 init-declarator-list-opt → %empty 353 | init-declarator-list 354 init-statementexpression-statement 355 | simple-declaration 356 | alias-declaration 357 init-statement-opt → %empty 358 | init-statement 359 initializerbrace-or-equal-initializer 360 | OPEN_PAREN expression-list CLOSE_PAREN 361 initializer-clauseassignment-expression 362 | braced-init-list 363 initializer-listinitializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 365 initializer-opt → %empty 366 | initializer 367 iteration-statementWHILE OPEN_PAREN condition CLOSE_PAREN statement 368 | DO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON 369 | FOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement 370 | FOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement 371 jump-statementBREAK SEMICOLON 372 | CONTINUE SEMICOLON 373 | RETURN expr-or-braced-init-list-opt SEMICOLON 374 | coroutine-return-statement 375 | GOTO IDENTIFIER SEMICOLON 376 labeled-statementattribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 379 lambda-capturecapture-default 380 | capture-list 381 | capture-default COMMA capture-list 382 lambda-capture-opt → %empty 383 | lambda-capture 384 lambda-declaratorlambda-specifiers 385 | OPEN_PAREN parameter-declaration-clause CLOSE_PAREN lambda-specifiers requires-clause-opt 386 lambda-expressionlambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducerOPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 389 lambda-specifiersdecl-specifier-seq-opt noexcept-specifier-opt attribute-specifier-seq-opt trailing-return-type-opt 390 linkage-specificationEXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 392 literal-operator-idOPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expressioninclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expressionlogical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 398 mem-initializermem-initializer-id OPEN_PAREN expression-list-opt CLOSE_PAREN 399 | mem-initializer-id braced-init-list 400 mem-initializer-idclass-or-decltype 401 | IDENTIFIER 402 mem-initializer-listmem-initializer ELLIPSIS-opt 403 | mem-initializer-list COMMA mem-initializer ELLIPSIS-opt 404 member-declarationattribute-specifier-seq-opt decl-specifier-seq-opt member-declarator-list-opt SEMICOLON 405 | function-definition 406 | using-declaration 407 | using-enum-declaration 408 | static_assert-declaration 409 | template-declaration 410 | explicit-specialization 411 | deduction-guide 412 | alias-declaration 413 | opaque-enum-declaration 414 | empty-declaration 415 member-declaratordeclarator virt-specifier-seq-opt pure-specifier-opt 416 | declarator requires-clause 417 | declarator brace-or-equal-initializer-opt 418 | IDENTIFIER-opt attribute-specifier-seq-opt COLON constant-expression brace-or-equal-initializer-opt 419 member-declarator-listmember-declarator 420 | member-declarator-list COMMA member-declarator 421 member-declarator-list-opt → %empty 422 | member-declarator-list 423 member-specificationmember-declaration member-specification-opt 424 | access-specifier COLON member-specification-opt 425 member-specification-opt → %empty 426 | member-specification 427 module-declarationEXPORT-opt MODULE module-name module-partition-opt attribute-specifier-seq-opt SEMICOLON 428 module-import-declarationIMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 431 module-namemodule-name-qualifier-opt IDENTIFIER 432 module-name-qualifierIDENTIFIER DOT 433 | module-name-qualifier IDENTIFIER DOT 434 module-name-qualifier-opt → %empty 435 | module-name-qualifier 436 module-partitionCOLON module-name-qualifier-opt IDENTIFIER 437 module-partition-opt → %empty 438 | module-partition 439 multiplicative-expressionpm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 443 named-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-aliasIDENTIFIER 445 namespace-alias-definitionNAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 446 namespace-bodydeclaration-seq-opt 447 namespace-definitionnamed-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-nameIDENTIFIER 451 | namespace-alias 452 nested-name-specifierSCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt → %empty 459 | nested-name-specifier 460 nested-namespace-definitionNAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 461 nested-requirementREQUIRES constraint-expression SEMICOLON 462 new-declaratorptr-operator new-declarator-opt 463 | noptr-new-declarator 464 new-declarator-opt → %empty 465 | new-declarator 466 new-expressionSCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 468 new-initializerOPEN_PAREN expression-list-opt CLOSE_PAREN 469 | braced-init-list 470 new-initializer-opt → %empty 471 | new-initializer 472 new-placementOPEN_PAREN expression-list CLOSE_PAREN 473 new-placement-opt → %empty 474 | new-placement 475 new-type-idtype-specifier-seq new-declarator-opt 476 nodeclspec-function-declarationattribute-specifier-seq-opt declarator SEMICOLON 477 noexcept-expressionNOEXCEPT OPEN_PAREN expression CLOSE_PAREN 478 noexcept-specifierNOEXCEPT OPEN_PAREN constant-expression CLOSE_PAREN 479 | NOEXCEPT 480 noexcept-specifier-opt → %empty 481 | noexcept-specifier 482 noptr-abstract-declaratornoptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt → %empty 486 | noptr-abstract-declarator 487 noptr-abstract-pack-declaratornoptr-abstract-pack-declarator parameters-and-qualifiers 488 | noptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 489 | ELLIPSIS 490 noptr-declaratordeclarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 494 noptr-new-declaratorOPEN_SQUARE expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 495 | noptr-new-declarator OPEN_SQUARE constant-expression CLOSE_SQUARE attribute-specifier-seq-opt 496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 497 operator-function-idOPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 499 overloadable-operatorNEW 500 | DELETE 501 | NEW OPEN_SQUARE CLOSE_SQUARE 502 | DELETE OPEN_SQUARE CLOSE_SQUARE 503 | CO_AWAIT 504 | OPEN_PAREN CLOSE_PAREN 505 | OPEN_SQUARE CLOSE_SQUARE 506 | DEREF 507 | DEREF_STAR 508 | COMPL 509 | NOT 510 | PLUS 511 | MINUS 512 | MULT 513 | DIV 514 | MOD 515 | XOR 516 | AND 517 | OR 518 | EQ 519 | PLUS_EQ 520 | MINUS_EQ 521 | MULT_EQ 522 | DIV_EQ 523 | MOD_EQ 524 | XOR_EQ 525 | AND_EQ 526 | OR_EQ 527 | EQ_EQ 528 | NOT_EQ 529 | LESS 530 | GREATER 531 | LESS_EQ 532 | GREATER_EQ 533 | SPACESHIP 534 | AND_AND 535 | OR_OR 536 | LSHIFT 537 | RSHIFT 538 | LSHIFT_EQ 539 | RSHIFT_EQ 540 | PLUS_PLUS 541 | MINUS_MINUS 542 | COMMA 543 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 547 parameter-declaration-clauseparameter-declaration-list-opt ELLIPSIS-opt 548 | parameter-declaration-list COMMA ELLIPSIS 549 parameter-declaration-listparameter-declaration 550 | parameter-declaration-list COMMA parameter-declaration 551 parameter-declaration-list-opt → %empty 552 | parameter-declaration-list 553 parameters-and-qualifiersOPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt 554 placeholder-type-specifiertype-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expressioncast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expressionprimary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expressionLITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 583 private-module-fragmentMODULE COLON PRIVATE SEMICOLON declaration-seq-opt 584 private-module-fragment-opt → %empty 585 | private-module-fragment 586 ptr-abstract-declaratornoptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 588 ptr-abstract-declarator-opt → %empty 589 | ptr-abstract-declarator 590 ptr-declaratornoptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operatorMULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 596 pure-specifierEQ '0' 597 pure-specifier-opt → %empty 598 | pure-specifier 599 qualified-idnested-name-specifier TEMPLATE-opt unqualified-id 600 qualified-namespace-specifiernested-name-specifier-opt namespace-name 601 ref-qualifierAND 602 | AND_AND 603 ref-qualifier-opt → %empty 604 | ref-qualifier 605 relational-expressioncompare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 610 requirementsimple-requirement 611 | type-requirement 612 | compound-requirement 613 | nested-requirement 614 requirement-bodyOPEN_BRACE requirement-seq CLOSE_BRACE 615 requirement-parameter-listOPEN_PAREN parameter-declaration-clause CLOSE_PAREN 616 requirement-parameter-list-opt → %empty 617 | requirement-parameter-list 618 requirement-seqrequirement 619 | requirement-seq requirement 620 requires-clauseREQUIRES constraint-logical-or-expression 621 requires-clause-opt → %empty 622 | requires-clause 623 requires-expressionREQUIRES requirement-parameter-list-opt requirement-body 624 return-type-requirementDEREF type-constraint 625 return-type-requirement-opt → %empty 626 | return-type-requirement 627 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement 629 | IF NOT-opt CONSTEVAL compound-statement 630 | IF NOT-opt CONSTEVAL compound-statement ELSE statement 631 | SWITCH OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 632 shift-expressionadditive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 635 simple-captureIDENTIFIER ELLIPSIS-opt 636 | AND IDENTIFIER ELLIPSIS-opt 637 | THIS 638 | MULT THIS 639 simple-declarationdecl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 642 simple-requirementexpression SEMICOLON 643 simple-template-idtemplate-name LESS template-argument-list-opt GREATER 644 simple-type-specifiernested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statementlabeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 671 statement-seqstatement 672 | statement-seq statement 673 statement-seq-opt → %empty 674 | statement-seq 675 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifierSTATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 681 string-literalSTRING_LITERAL 682 template-argumentconstant-expression 683 | type-id 684 | id-expression 685 template-argument-listtemplate-argument ELLIPSIS-opt 686 | template-argument-list COMMA template-argument ELLIPSIS-opt 687 template-argument-list-opt → %empty 688 | template-argument-list 689 template-declarationtemplate-head declaration 690 | template-head concept-definition 691 template-headTEMPLATE LESS template-parameter-list GREATER requires-clause-opt 692 template-idsimple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-nameIDENTIFIER 696 template-parametertype-parameter 697 | parameter-declaration 698 template-parameter-listtemplate-parameter 699 | template-parameter-list COMMA template-parameter 700 throw-expressionTHROW assignment-expression-opt 701 trailing-return-typeDEREF type-id 702 trailing-return-type-opt → %empty 703 | trailing-return-type 704 translation-unitdeclaration-seq-opt 705 | global-module-fragment-opt module-declaration declaration-seq-opt private-module-fragment-opt 706 try-blockTRY compound-statement handler-seq 707 type-constraintnested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt → %empty 710 | type-constraint 711 type-idtype-specifier-seq abstract-declarator-opt 712 type-nameclass-name 713 | enum-name 714 | typedef-name 715 type-parametertype-parameter-key ELLIPSIS-opt IDENTIFIER-opt 716 | type-parameter-key IDENTIFIER-opt EQ type-id 717 | type-constraint ELLIPSIS-opt IDENTIFIER-opt 718 | type-constraint IDENTIFIER-opt EQ type-id 719 | template-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 720 | template-head type-parameter-key IDENTIFIER-opt EQ id-expression 721 type-parameter-keyCLASS 722 | TYPENAME 723 type-requirementTYPENAME nested-name-specifier-opt type-name SEMICOLON 724 type-specifiersimple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seqtype-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-nameIDENTIFIER 731 | simple-template-id 732 typename-specifierTYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 734 ud-suffixIDENTIFIER 735 unary-expressionpostfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operatorMULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 753 unnamed-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 754 unqualified-idIDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 761 user-defined-string-literalstring-literal ud-suffix 762 using-declarationUSING using-declarator-list SEMICOLON 763 using-declaratorTYPENAME-opt nested-name-specifier unqualified-id 764 using-declarator-listusing-declarator ELLIPSIS-opt 765 | using-declarator-list COMMA using-declarator ELLIPSIS-opt 766 using-directiveattribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declarationUSING elaborated-enum-specifier SEMICOLON 768 virt-specifierOVERRIDE 769 | FINAL 770 virt-specifier-seqvirt-specifier 771 | virt-specifier-seq virt-specifier 772 virt-specifier-seq-opt → %empty 773 | virt-specifier-seq 774 yield-expressionCO_YIELD assignment-expression 775 | CO_YIELD braced-init-list

Terminals, with rules where they appear

Nonterminals, with rules where they appear

Automaton

State 0

0 $accept translation-unit $end 9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [$end] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 332 global-module-fragment MODULE SEMICOLON declaration-seq-opt 333 global-module-fragment-opt %empty [EXPORT, MODULE] 334 | global-module-fragment 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 704 translation-unit declaration-seq-opt 705 | global-module-fragment-opt module-declaration declaration-seq-opt private-module-fragment-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 MODULE shift, and go to state 24 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 $end reduce using rule 208 (declaration-seq-opt) CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXPORT [reduce using rule 333 (global-module-fragment-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] MODULE [reduce using rule 333 (global-module-fragment-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 62 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 global-module-fragment go to state 80 global-module-fragment-opt go to state 81 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 translation-unit go to state 103 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1

185 decl-specifierCONSTEXPR $default reduce using rule 185 (decl-specifier)

State 2

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 270 | EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 OPEN_BRACE shift, and go to state 114 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 115 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 116 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 3

10 EXTERN-optEXTERN [TEMPLATE] 390 linkage-specificationEXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 679 storage-class-specifierEXTERN [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 681 string-literal STRING_LITERAL STRING_LITERAL shift, and go to state 117 TEMPLATE reduce using rule 10 (EXTERN-opt) $default reduce using rule 679 (storage-class-specifier) string-literal go to state 118

State 4

137 class-nameIDENTIFIER [SCOPE] 246 enum-nameIDENTIFIER [SCOPE] 444 namespace-aliasIDENTIFIER [SCOPE] 450 namespace-nameIDENTIFIER [SCOPE] 695 template-nameIDENTIFIER [LESS] 730 typedef-nameIDENTIFIER [SCOPE] SCOPE reduce using rule 137 (class-name) SCOPE [reduce using rule 246 (enum-name)] SCOPE [reduce using rule 444 (namespace-alias)] SCOPE [reduce using rule 450 (namespace-name)] SCOPE [reduce using rule 730 (typedef-name)] LESS reduce using rule 695 (template-name) $default reduce using rule 137 (class-name)

State 5

14 INLINE-optINLINE [NAMESPACE] 188 decl-specifierINLINE [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] NAMESPACE reduce using rule 14 (INLINE-opt) $default reduce using rule 188 (decl-specifier)

State 6

452 nested-name-specifierSCOPE $default reduce using rule 452 (nested-name-specifier)

State 7

265 explicit-specializationTEMPLATE LESS GREATER declaration 691 template-headTEMPLATE LESS template-parameter-list GREATER requires-clause-opt LESS shift, and go to state 119

State 8

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifierTYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 121 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 9

329 function-specifierVIRTUAL $default reduce using rule 329 (function-specifier)

State 10

25 TYPENAME-opt %empty [IDENTIFIER, SCOPE, DECLTYPE] 26 | TYPENAME 44 alias-declarationUSING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 762 using-declarationUSING using-declarator-list SEMICOLON 763 using-declarator TYPENAME-opt nested-name-specifier unqualified-id 764 using-declarator-list using-declarator ELLIPSIS-opt 765 | using-declarator-list COMMA using-declarator ELLIPSIS-opt 767 using-enum-declarationUSING elaborated-enum-specifier SEMICOLON IDENTIFIER shift, and go to state 122 TYPENAME shift, and go to state 123 ENUM shift, and go to state 124 IDENTIFIER [reduce using rule 25 (TYPENAME-opt)] $default reduce using rule 25 (TYPENAME-opt) TYPENAME-opt go to state 125 elaborated-enum-specifier go to state 126 using-declarator go to state 127 using-declarator-list go to state 128

State 11

233 empty-declarationSEMICOLON $default reduce using rule 233 (empty-declaration)

State 12

134 class-keyCLASS $default reduce using rule 134 (class-key)

State 13

135 class-keySTRUCT $default reduce using rule 135 (class-key)

State 14

136 class-keyUNION $default reduce using rule 136 (class-key)

State 15

175 cv-qualifierCONST $default reduce using rule 175 (cv-qualifier)

State 16

176 cv-qualifierVOLATILE $default reduce using rule 176 (cv-qualifier)

State 17

183 decl-specifierFRIEND $default reduce using rule 183 (decl-specifier)

State 18

184 decl-specifierTYPEDEF $default reduce using rule 184 (decl-specifier)

State 19

186 decl-specifierCONSTEVAL $default reduce using rule 186 (decl-specifier)

State 20

187 decl-specifierCONSTINIT $default reduce using rule 187 (decl-specifier)

State 21

214 decltype-specifierDECLTYPE OPEN_PAREN expression CLOSE_PAREN OPEN_PAREN shift, and go to state 129

State 22

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifierENUM nested-name-specifier-opt IDENTIFIER 243 enum-keyENUM [IDENTIFIER, SCOPE, ALIGNAS, OPEN_SQUARE, COLON, OPEN_BRACE, DECLTYPE] 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 CLASS shift, and go to state 130 STRUCT shift, and go to state 131 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 243 (enum-key)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 243 (enum-key)] DECLTYPE [reduce using rule 243 (enum-key)] $default reduce using rule 243 (enum-key) class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 133 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 23

266 explicit-specifierEXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT [COMMA, CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TYPENAME, VIRTUAL, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, OPEN_SQUARE, COLON, OPEN_BRACE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, ENUM, GREATER, EXPLICIT, MULT, REQUIRES, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] OPEN_PAREN shift, and go to state 134 OPEN_PAREN [reduce using rule 267 (explicit-specifier)] $default reduce using rule 267 (explicit-specifier)

State 24

332 global-module-fragmentMODULE SEMICOLON declaration-seq-opt SEMICOLON shift, and go to state 135

State 25

339 header-name HEADER_NAME 428 module-import-declarationIMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 431 module-name module-name-qualifier-opt IDENTIFIER 432 module-name-qualifier IDENTIFIER DOT 433 | module-name-qualifier IDENTIFIER DOT 434 module-name-qualifier-opt %empty [IDENTIFIER] 435 | module-name-qualifier 436 module-partition COLON module-name-qualifier-opt IDENTIFIER IDENTIFIER shift, and go to state 136 COLON shift, and go to state 137 HEADER_NAME shift, and go to state 138 IDENTIFIER [reduce using rule 434 (module-name-qualifier-opt)] header-name go to state 139 module-name go to state 140 module-name-qualifier go to state 141 module-name-qualifier-opt go to state 142 module-partition go to state 143

State 26

234 enclosing-namespace-specifier IDENTIFIER 235 | enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER 445 namespace-alias-definitionNAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 460 nested-namespace-definitionNAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE IDENTIFIER shift, and go to state 144 enclosing-namespace-specifier go to state 145

State 27

649 simple-type-specifierCHAR $default reduce using rule 649 (simple-type-specifier)

State 28

650 simple-type-specifierCHAR8_T $default reduce using rule 650 (simple-type-specifier)

State 29

651 simple-type-specifierCHAR16_T $default reduce using rule 651 (simple-type-specifier)

State 30

652 simple-type-specifierCHAR32_T $default reduce using rule 652 (simple-type-specifier)

State 31

653 simple-type-specifierWCHAR_T $default reduce using rule 653 (simple-type-specifier)

State 32

654 simple-type-specifierBOOL $default reduce using rule 654 (simple-type-specifier)

State 33

655 simple-type-specifierSHORT $default reduce using rule 655 (simple-type-specifier)

State 34

656 simple-type-specifierINT $default reduce using rule 656 (simple-type-specifier)

State 35

657 simple-type-specifierLONG $default reduce using rule 657 (simple-type-specifier)

State 36

658 simple-type-specifierSIGNED $default reduce using rule 658 (simple-type-specifier)

State 37

659 simple-type-specifierUNSIGNED $default reduce using rule 659 (simple-type-specifier)

State 38

660 simple-type-specifierFLOAT $default reduce using rule 660 (simple-type-specifier)

State 39

661 simple-type-specifierDOUBLE $default reduce using rule 661 (simple-type-specifier)

State 40

662 simple-type-specifierVOID $default reduce using rule 662 (simple-type-specifier)

State 41

675 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON OPEN_PAREN shift, and go to state 146

State 42

677 storage-class-specifierSTATIC $default reduce using rule 677 (storage-class-specifier)

State 43

678 storage-class-specifierTHREAD_LOCAL $default reduce using rule 678 (storage-class-specifier)

State 44

680 storage-class-specifierMUTABLE $default reduce using rule 680 (storage-class-specifier)

State 45

264 explicit-instantiationEXTERN-opt TEMPLATE declaration TEMPLATE shift, and go to state 147

State 46

443 named-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 753 unnamed-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE NAMESPACE shift, and go to state 148

State 47

114 block-declarationalias-declaration $default reduce using rule 114 (block-declaration)

State 48

108 block-declarationasm-declaration $default reduce using rule 108 (block-declaration)

State 49

204 declarationattribute-declaration $default reduce using rule 204 (declaration)

State 50

71 attribute-declarationattribute-specifier-seq SEMICOLON 84 attribute-specifier-seq-optattribute-specifier-seq [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 640 simple-declarationattribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 SEMICOLON shift, and go to state 151 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 84 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 84 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 84 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 84 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 84 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 84 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 84 (attribute-specifier-seq-opt)] CLASS [reduce using rule 84 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 84 (attribute-specifier-seq-opt)] UNION [reduce using rule 84 (attribute-specifier-seq-opt)] CONST [reduce using rule 84 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 84 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 84 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 84 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 84 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 84 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 84 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 84 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 84 (attribute-specifier-seq-opt)] AUTO reduce using rule 84 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 84 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 84 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 84 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 84 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 84 (attribute-specifier-seq-opt)] BOOL [reduce using rule 84 (attribute-specifier-seq-opt)] SHORT [reduce using rule 84 (attribute-specifier-seq-opt)] INT [reduce using rule 84 (attribute-specifier-seq-opt)] LONG [reduce using rule 84 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 84 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 84 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 84 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 84 (attribute-specifier-seq-opt)] VOID [reduce using rule 84 (attribute-specifier-seq-opt)] STATIC [reduce using rule 84 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 84 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 84 (attribute-specifier-seq-opt)] $default reduce using rule 84 (attribute-specifier-seq-opt) class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 152 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 51

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 49 asm-declarationattribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 191 decl-specifier-seq-opt %empty [ELLIPSIS, IDENTIFIER, SCOPE, OPEN_PAREN, AND, AND_AND, OPERATOR, DECLTYPE, MULT, COMPL] 192 | decl-specifier-seq 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 476 nodeclspec-function-declarationattribute-specifier-seq-opt declarator SEMICOLON 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 766 using-directiveattribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON CONSTEXPR shift, and go to state 1 ELLIPSIS shift, and go to state 155 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 156 ALIGNAS shift, and go to state 157 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 ASM shift, and go to state 160 OPEN_SQUARE shift, and go to state 161 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 AND_AND shift, and go to state 162 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 MULT shift, and go to state 163 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 ELLIPSIS [reduce using rule 191 (decl-specifier-seq-opt)] IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] IDENTIFIER [reduce using rule 191 (decl-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 191 (decl-specifier-seq-opt)] OPEN_PAREN [reduce using rule 191 (decl-specifier-seq-opt)] AND [reduce using rule 191 (decl-specifier-seq-opt)] AND_AND [reduce using rule 191 (decl-specifier-seq-opt)] OPERATOR reduce using rule 5 (ELLIPSIS-opt) OPERATOR [reduce using rule 191 (decl-specifier-seq-opt)] DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] DECLTYPE [reduce using rule 191 (decl-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] MULT [reduce using rule 191 (decl-specifier-seq-opt)] COMPL reduce using rule 5 (ELLIPSIS-opt) COMPL [reduce using rule 191 (decl-specifier-seq-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 alignment-specifier go to state 165 attribute-specifier go to state 166 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 167 decl-specifier-seq-opt go to state 168 declarator go to state 169 declarator-id go to state 170 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 171 nested-name-specifier-opt go to state 90 noptr-declarator go to state 172 placeholder-type-specifier go to state 94 ptr-declarator go to state 173 ptr-operator go to state 174 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 52

193 declarationblock-declaration $default reduce using rule 193 (declaration)

State 53

142 class-specifierclass-head OPEN_BRACE member-specification-opt CLOSE_BRACE OPEN_BRACE shift, and go to state 175

State 54

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [IDENTIFIER, SCOPE, ALIGNAS, OPEN_SQUARE, COLON, OPEN_BRACE, DECLTYPE] 84 | attribute-specifier-seq 131 class-headclass-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 177 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 178 simple-template-id go to state 179 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 55

712 type-nameclass-name $default reduce using rule 712 (type-name)

State 56

218 defining-type-specifierclass-specifier $default reduce using rule 218 (defining-type-specifier)

State 57

727 type-specifiercv-qualifier $default reduce using rule 727 (type-specifier)

State 58

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [COMMA, ELLIPSIS, IDENTIFIER, NOEXCEPT, SCOPE, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, OPEN_SQUARE, COLON, OPEN_BRACE, AND_AND, OPERATOR, DECLTYPE, DEREF, GREATER, MULT, REQUIRES, COMPL] 84 | attribute-specifier-seq 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 189 | decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 180 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 181 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 59

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 348 init-declarator declarator initializer-opt 349 | declarator requires-clause 350 init-declarator-list init-declarator 351 | init-declarator-list COMMA init-declarator 352 init-declarator-list-opt %empty [SEMICOLON] 353 | init-declarator-list 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 639 simple-declarationdecl-specifier-seq init-declarator-list-opt SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] SEMICOLON reduce using rule 352 (init-declarator-list-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator go to state 182 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 init-declarator go to state 183 init-declarator-list go to state 184 init-declarator-list-opt go to state 185 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 172 ptr-declarator go to state 173 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 60

206 declaration-seqdeclaration $default reduce using rule 206 (declaration-seq)

State 61

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 207 declaration-seqdeclaration-seq declaration 209 declaration-seq-optdeclaration-seq [$end, EXPORT, CLOSE_BRACE, MODULE] 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 $end reduce using rule 209 (declaration-seq-opt) CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXPORT [reduce using rule 209 (declaration-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 209 (declaration-seq-opt) CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] MODULE reduce using rule 209 (declaration-seq-opt) NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 187 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 62

704 translation-unitdeclaration-seq-opt $default reduce using rule 704 (translation-unit)

State 63

455 nested-name-specifierdecltype-specifier SCOPE 646 simple-type-specifierdecltype-specifier [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] SCOPE shift, and go to state 188 SCOPE [reduce using rule 646 (simple-type-specifier)] $default reduce using rule 646 (simple-type-specifier)

State 64

197 declarationdeduction-guide $default reduce using rule 197 (declaration)

State 65

181 decl-specifierdefining-type-specifier $default reduce using rule 181 (decl-specifier)

State 66

232 elaborated-type-specifierelaborated-enum-specifier $default reduce using rule 232 (elaborated-type-specifier)

State 67

725 type-specifierelaborated-type-specifier $default reduce using rule 725 (type-specifier)

State 68

203 declarationempty-declaration $default reduce using rule 203 (declaration)

State 69

247 enum-specifierenum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE OPEN_BRACE shift, and go to state 189

State 70

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 239 enum-headenum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 190

State 71

713 type-nameenum-name $default reduce using rule 713 (type-name)

State 72

219 defining-type-specifierenum-specifier $default reduce using rule 219 (defining-type-specifier)

State 73

198 declarationexplicit-instantiation $default reduce using rule 198 (declaration)

State 74

199 declarationexplicit-specialization $default reduce using rule 199 (declaration)

State 75

269 explicit-specifier-optexplicit-specifier [IDENTIFIER] 330 function-specifierexplicit-specifier [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] IDENTIFIER reduce using rule 269 (explicit-specifier-opt) IDENTIFIER [reduce using rule 330 (function-specifier)] $default reduce using rule 330 (function-specifier)

State 76

215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 695 template-name IDENTIFIER IDENTIFIER shift, and go to state 191 template-name go to state 192

State 77

200 declarationexport-declaration $default reduce using rule 200 (declaration)

State 78

195 declarationfunction-definition $default reduce using rule 195 (declaration)

State 79

182 decl-specifierfunction-specifier $default reduce using rule 182 (decl-specifier)

State 80

334 global-module-fragment-optglobal-module-fragment $default reduce using rule 334 (global-module-fragment-opt)

State 81

7 EXPORT-opt %empty [MODULE] 8 | EXPORT 427 module-declaration EXPORT-opt MODULE module-name module-partition-opt attribute-specifier-seq-opt SEMICOLON 705 translation-unitglobal-module-fragment-opt module-declaration declaration-seq-opt private-module-fragment-opt EXPORT shift, and go to state 193 $default reduce using rule 7 (EXPORT-opt) EXPORT-opt go to state 194 module-declaration go to state 195

State 82

201 declarationlinkage-specification $default reduce using rule 201 (declaration)

State 83

205 declarationmodule-import-declaration $default reduce using rule 205 (declaration)

State 84

447 namespace-definitionnamed-namespace-definition $default reduce using rule 447 (namespace-definition)

State 85

451 namespace-namenamespace-alias $default reduce using rule 451 (namespace-name)

State 86

109 block-declarationnamespace-alias-definition $default reduce using rule 109 (block-declaration)

State 87

202 declarationnamespace-definition $default reduce using rule 202 (declaration)

State 88

454 nested-name-specifiernamespace-name SCOPE SCOPE shift, and go to state 196

State 89

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 459 nested-name-specifier-optnested-name-specifier [IDENTIFIER] 645 simple-type-specifiernested-name-specifier TEMPLATE simple-template-id IDENTIFIER shift, and go to state 197 TEMPLATE shift, and go to state 198 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] IDENTIFIER [reduce using rule 459 (nested-name-specifier-opt)] TEMPLATE-opt go to state 199

State 90

137 class-name IDENTIFIER 138 | simple-template-id 151 concept-name IDENTIFIER 246 enum-name IDENTIFIER 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifiernested-name-specifier-opt type-name 648 | nested-name-specifier-opt template-name 695 template-name IDENTIFIER 707 type-constraintnested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 200 class-name go to state 55 concept-name go to state 201 enum-name go to state 71 simple-template-id go to state 96 template-name go to state 202 type-name go to state 203 typedef-name go to state 108

State 91

449 namespace-definitionnested-namespace-definition $default reduce using rule 449 (namespace-definition)

State 92

194 declarationnodeclspec-function-declaration $default reduce using rule 194 (declaration)

State 93

115 block-declarationopaque-enum-declaration $default reduce using rule 115 (block-declaration)

State 94

647 simple-type-specifierplaceholder-type-specifier $default reduce using rule 647 (simple-type-specifier)

State 95

107 block-declarationsimple-declaration $default reduce using rule 107 (block-declaration)

State 96

138 class-namesimple-template-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 731 typedef-namesimple-template-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] COMMA reduce using rule 138 (class-name) COMMA [reduce using rule 731 (typedef-name)] CONSTEXPR reduce using rule 138 (class-name) CONSTEXPR [reduce using rule 731 (typedef-name)] ELLIPSIS reduce using rule 138 (class-name) ELLIPSIS [reduce using rule 731 (typedef-name)] EXPORT reduce using rule 138 (class-name) EXPORT [reduce using rule 731 (typedef-name)] EXTERN reduce using rule 138 (class-name) EXTERN [reduce using rule 731 (typedef-name)] IDENTIFIER reduce using rule 138 (class-name) IDENTIFIER [reduce using rule 731 (typedef-name)] INLINE reduce using rule 138 (class-name) INLINE [reduce using rule 731 (typedef-name)] NOEXCEPT reduce using rule 138 (class-name) NOEXCEPT [reduce using rule 731 (typedef-name)] SCOPE reduce using rule 138 (class-name) SCOPE [reduce using rule 731 (typedef-name)] TEMPLATE reduce using rule 138 (class-name) TEMPLATE [reduce using rule 731 (typedef-name)] TYPENAME reduce using rule 138 (class-name) TYPENAME [reduce using rule 731 (typedef-name)] VIRTUAL reduce using rule 138 (class-name) VIRTUAL [reduce using rule 731 (typedef-name)] PLUS reduce using rule 138 (class-name) PLUS [reduce using rule 731 (typedef-name)] MINUS reduce using rule 138 (class-name) MINUS [reduce using rule 731 (typedef-name)] USING reduce using rule 138 (class-name) USING [reduce using rule 731 (typedef-name)] EQ reduce using rule 138 (class-name) EQ [reduce using rule 731 (typedef-name)] SEMICOLON reduce using rule 138 (class-name) SEMICOLON [reduce using rule 731 (typedef-name)] ALIGNAS reduce using rule 138 (class-name) ALIGNAS [reduce using rule 731 (typedef-name)] OPEN_PAREN reduce using rule 138 (class-name) OPEN_PAREN [reduce using rule 731 (typedef-name)] CLOSE_PAREN reduce using rule 138 (class-name) CLOSE_PAREN [reduce using rule 731 (typedef-name)] AND reduce using rule 138 (class-name) AND [reduce using rule 731 (typedef-name)] ASM reduce using rule 138 (class-name) ASM [reduce using rule 731 (typedef-name)] MULT_EQ reduce using rule 138 (class-name) MULT_EQ [reduce using rule 731 (typedef-name)] DIV_EQ reduce using rule 138 (class-name) DIV_EQ [reduce using rule 731 (typedef-name)] MOD_EQ reduce using rule 138 (class-name) MOD_EQ [reduce using rule 731 (typedef-name)] PLUS_EQ reduce using rule 138 (class-name) PLUS_EQ [reduce using rule 731 (typedef-name)] MINUS_EQ reduce using rule 138 (class-name) MINUS_EQ [reduce using rule 731 (typedef-name)] RSHIFT_EQ reduce using rule 138 (class-name) RSHIFT_EQ [reduce using rule 731 (typedef-name)] LSHIFT_EQ reduce using rule 138 (class-name) LSHIFT_EQ [reduce using rule 731 (typedef-name)] AND_EQ reduce using rule 138 (class-name) AND_EQ [reduce using rule 731 (typedef-name)] XOR_EQ reduce using rule 138 (class-name) XOR_EQ [reduce using rule 731 (typedef-name)] OR_EQ reduce using rule 138 (class-name) OR_EQ [reduce using rule 731 (typedef-name)] OPEN_SQUARE reduce using rule 138 (class-name) OPEN_SQUARE [reduce using rule 731 (typedef-name)] CLOSE_SQUARE reduce using rule 138 (class-name) CLOSE_SQUARE [reduce using rule 731 (typedef-name)] COLON reduce using rule 138 (class-name) COLON [reduce using rule 731 (typedef-name)] OPEN_BRACE reduce using rule 138 (class-name) OPEN_BRACE [reduce using rule 731 (typedef-name)] CLOSE_BRACE reduce using rule 138 (class-name) CLOSE_BRACE [reduce using rule 731 (typedef-name)] CLASS reduce using rule 138 (class-name) CLASS [reduce using rule 731 (typedef-name)] STRUCT reduce using rule 138 (class-name) STRUCT [reduce using rule 731 (typedef-name)] UNION reduce using rule 138 (class-name) UNION [reduce using rule 731 (typedef-name)] FINAL reduce using rule 138 (class-name) FINAL [reduce using rule 731 (typedef-name)] SPACESHIP reduce using rule 138 (class-name) SPACESHIP [reduce using rule 731 (typedef-name)] CONCEPT reduce using rule 138 (class-name) CONCEPT [reduce using rule 731 (typedef-name)] QUERY reduce using rule 138 (class-name) QUERY [reduce using rule 731 (typedef-name)] AND_AND reduce using rule 138 (class-name) AND_AND [reduce using rule 731 (typedef-name)] OR_OR reduce using rule 138 (class-name) OR_OR [reduce using rule 731 (typedef-name)] OPERATOR reduce using rule 138 (class-name) OPERATOR [reduce using rule 731 (typedef-name)] CONST reduce using rule 138 (class-name) CONST [reduce using rule 731 (typedef-name)] VOLATILE reduce using rule 138 (class-name) VOLATILE [reduce using rule 731 (typedef-name)] FRIEND reduce using rule 138 (class-name) FRIEND [reduce using rule 731 (typedef-name)] TYPEDEF reduce using rule 138 (class-name) TYPEDEF [reduce using rule 731 (typedef-name)] CONSTEVAL reduce using rule 138 (class-name) CONSTEVAL [reduce using rule 731 (typedef-name)] CONSTINIT reduce using rule 138 (class-name) CONSTINIT [reduce using rule 731 (typedef-name)] DECLTYPE reduce using rule 138 (class-name) DECLTYPE [reduce using rule 731 (typedef-name)] DEREF reduce using rule 138 (class-name) DEREF [reduce using rule 731 (typedef-name)] DOT reduce using rule 138 (class-name) DOT [reduce using rule 731 (typedef-name)] ENUM reduce using rule 138 (class-name) ENUM [reduce using rule 731 (typedef-name)] EQ_EQ reduce using rule 138 (class-name) EQ_EQ [reduce using rule 731 (typedef-name)] NOT_EQ reduce using rule 138 (class-name) NOT_EQ [reduce using rule 731 (typedef-name)] XOR reduce using rule 138 (class-name) XOR [reduce using rule 731 (typedef-name)] LESS reduce using rule 138 (class-name) LESS [reduce using rule 731 (typedef-name)] GREATER reduce using rule 138 (class-name) GREATER [reduce using rule 731 (typedef-name)] EXPLICIT reduce using rule 138 (class-name) EXPLICIT [reduce using rule 731 (typedef-name)] MULT reduce using rule 138 (class-name) MULT [reduce using rule 731 (typedef-name)] DIV reduce using rule 138 (class-name) DIV [reduce using rule 731 (typedef-name)] MOD reduce using rule 138 (class-name) MOD [reduce using rule 731 (typedef-name)] OR reduce using rule 138 (class-name) OR [reduce using rule 731 (typedef-name)] LSHIFT reduce using rule 138 (class-name) LSHIFT [reduce using rule 731 (typedef-name)] RSHIFT reduce using rule 138 (class-name) RSHIFT [reduce using rule 731 (typedef-name)] LESS_EQ reduce using rule 138 (class-name) LESS_EQ [reduce using rule 731 (typedef-name)] GREATER_EQ reduce using rule 138 (class-name) GREATER_EQ [reduce using rule 731 (typedef-name)] DOT_STAR reduce using rule 138 (class-name) DOT_STAR [reduce using rule 731 (typedef-name)] DEREF_STAR reduce using rule 138 (class-name) DEREF_STAR [reduce using rule 731 (typedef-name)] TRY reduce using rule 138 (class-name) TRY [reduce using rule 731 (typedef-name)] IMPORT reduce using rule 138 (class-name) IMPORT [reduce using rule 731 (typedef-name)] NAMESPACE reduce using rule 138 (class-name) NAMESPACE [reduce using rule 731 (typedef-name)] REQUIRES reduce using rule 138 (class-name) REQUIRES [reduce using rule 731 (typedef-name)] COMPL reduce using rule 138 (class-name) COMPL [reduce using rule 731 (typedef-name)] PLUS_PLUS reduce using rule 138 (class-name) PLUS_PLUS [reduce using rule 731 (typedef-name)] MINUS_MINUS reduce using rule 138 (class-name) MINUS_MINUS [reduce using rule 731 (typedef-name)] AUTO reduce using rule 138 (class-name) AUTO [reduce using rule 731 (typedef-name)] CHAR reduce using rule 138 (class-name) CHAR [reduce using rule 731 (typedef-name)] CHAR8_T reduce using rule 138 (class-name) CHAR8_T [reduce using rule 731 (typedef-name)] CHAR16_T reduce using rule 138 (class-name) CHAR16_T [reduce using rule 731 (typedef-name)] CHAR32_T reduce using rule 138 (class-name) CHAR32_T [reduce using rule 731 (typedef-name)] WCHAR_T reduce using rule 138 (class-name) WCHAR_T [reduce using rule 731 (typedef-name)] BOOL reduce using rule 138 (class-name) BOOL [reduce using rule 731 (typedef-name)] SHORT reduce using rule 138 (class-name) SHORT [reduce using rule 731 (typedef-name)] INT reduce using rule 138 (class-name) INT [reduce using rule 731 (typedef-name)] LONG reduce using rule 138 (class-name) LONG [reduce using rule 731 (typedef-name)] SIGNED reduce using rule 138 (class-name) SIGNED [reduce using rule 731 (typedef-name)] UNSIGNED reduce using rule 138 (class-name) UNSIGNED [reduce using rule 731 (typedef-name)] FLOAT reduce using rule 138 (class-name) FLOAT [reduce using rule 731 (typedef-name)] DOUBLE reduce using rule 138 (class-name) DOUBLE [reduce using rule 731 (typedef-name)] VOID reduce using rule 138 (class-name) VOID [reduce using rule 731 (typedef-name)] STATIC_ASSERT reduce using rule 138 (class-name) STATIC_ASSERT [reduce using rule 731 (typedef-name)] STATIC reduce using rule 138 (class-name) STATIC [reduce using rule 731 (typedef-name)] THREAD_LOCAL reduce using rule 138 (class-name) THREAD_LOCAL [reduce using rule 731 (typedef-name)] MUTABLE reduce using rule 138 (class-name) MUTABLE [reduce using rule 731 (typedef-name)] OVERRIDE reduce using rule 138 (class-name) OVERRIDE [reduce using rule 731 (typedef-name)] $default reduce using rule 138 (class-name)

State 97

724 type-specifiersimple-type-specifier $default reduce using rule 724 (type-specifier)

State 98

113 block-declarationstatic_assert-declaration $default reduce using rule 113 (block-declaration)

State 99

180 decl-specifierstorage-class-specifier $default reduce using rule 180 (decl-specifier)

State 100

196 declarationtemplate-declaration $default reduce using rule 196 (declaration)

State 101

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 150 concept-definition CONCEPT concept-name EQ constraint-expression SEMICOLON 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 689 | template-head declaration 690 | template-head concept-definition 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONCEPT shift, and go to state 204 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 concept-definition go to state 205 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 206 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 102

643 simple-template-idtemplate-name LESS template-argument-list-opt GREATER LESS shift, and go to state 207

State 103

0 $accepttranslation-unit $end $end shift, and go to state 208

State 104

710 type-constraint-opttype-constraint $default reduce using rule 710 (type-constraint-opt)

State 105

554 placeholder-type-specifiertype-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN DECLTYPE shift, and go to state 209 AUTO shift, and go to state 210

State 106

453 nested-name-specifiertype-name SCOPE SCOPE shift, and go to state 211

State 107

217 defining-type-specifiertype-specifier $default reduce using rule 217 (defining-type-specifier)

State 108

714 type-nametypedef-name $default reduce using rule 714 (type-name)

State 109

726 type-specifiertypename-specifier $default reduce using rule 726 (type-specifier)

State 110

448 namespace-definitionunnamed-namespace-definition $default reduce using rule 448 (namespace-definition)

State 111

110 block-declarationusing-declaration $default reduce using rule 110 (block-declaration)

State 112

112 block-declarationusing-directive $default reduce using rule 112 (block-declaration)

State 113

111 block-declarationusing-enum-declaration $default reduce using rule 111 (block-declaration)

State 114

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [CLOSE_BRACE] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 208 (declaration-seq-opt) CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 212 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 115

270 export-declarationEXPORT declaration $default reduce using rule 270 (export-declaration)

State 116

205 declarationmodule-import-declaration [$end, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PRIVATE, PROTECTED, PUBLIC, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, COLON, CLOSE_BRACE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, MODULE, IMPORT, NAMESPACE, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE] 272 export-declarationEXPORT module-import-declaration [$end, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PRIVATE, PROTECTED, PUBLIC, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, COLON, CLOSE_BRACE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, MODULE, IMPORT, NAMESPACE, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE] $end reduce using rule 205 (declaration) $end [reduce using rule 272 (export-declaration)] CONSTEXPR reduce using rule 205 (declaration) CONSTEXPR [reduce using rule 272 (export-declaration)] ELLIPSIS reduce using rule 205 (declaration) ELLIPSIS [reduce using rule 272 (export-declaration)] EXPORT reduce using rule 205 (declaration) EXPORT [reduce using rule 272 (export-declaration)] EXTERN reduce using rule 205 (declaration) EXTERN [reduce using rule 272 (export-declaration)] IDENTIFIER reduce using rule 205 (declaration) IDENTIFIER [reduce using rule 272 (export-declaration)] INLINE reduce using rule 205 (declaration) INLINE [reduce using rule 272 (export-declaration)] SCOPE reduce using rule 205 (declaration) SCOPE [reduce using rule 272 (export-declaration)] TEMPLATE reduce using rule 205 (declaration) TEMPLATE [reduce using rule 272 (export-declaration)] TYPENAME reduce using rule 205 (declaration) TYPENAME [reduce using rule 272 (export-declaration)] VIRTUAL reduce using rule 205 (declaration) VIRTUAL [reduce using rule 272 (export-declaration)] PRIVATE reduce using rule 205 (declaration) PRIVATE [reduce using rule 272 (export-declaration)] PROTECTED reduce using rule 205 (declaration) PROTECTED [reduce using rule 272 (export-declaration)] PUBLIC reduce using rule 205 (declaration) PUBLIC [reduce using rule 272 (export-declaration)] USING reduce using rule 205 (declaration) USING [reduce using rule 272 (export-declaration)] SEMICOLON reduce using rule 205 (declaration) SEMICOLON [reduce using rule 272 (export-declaration)] ALIGNAS reduce using rule 205 (declaration) ALIGNAS [reduce using rule 272 (export-declaration)] OPEN_PAREN reduce using rule 205 (declaration) OPEN_PAREN [reduce using rule 272 (export-declaration)] AND reduce using rule 205 (declaration) AND [reduce using rule 272 (export-declaration)] ASM reduce using rule 205 (declaration) ASM [reduce using rule 272 (export-declaration)] OPEN_SQUARE reduce using rule 205 (declaration) OPEN_SQUARE [reduce using rule 272 (export-declaration)] COLON reduce using rule 205 (declaration) COLON [reduce using rule 272 (export-declaration)] CLOSE_BRACE reduce using rule 205 (declaration) CLOSE_BRACE [reduce using rule 272 (export-declaration)] CLASS reduce using rule 205 (declaration) CLASS [reduce using rule 272 (export-declaration)] STRUCT reduce using rule 205 (declaration) STRUCT [reduce using rule 272 (export-declaration)] UNION reduce using rule 205 (declaration) UNION [reduce using rule 272 (export-declaration)] AND_AND reduce using rule 205 (declaration) AND_AND [reduce using rule 272 (export-declaration)] OPERATOR reduce using rule 205 (declaration) OPERATOR [reduce using rule 272 (export-declaration)] CONST reduce using rule 205 (declaration) CONST [reduce using rule 272 (export-declaration)] VOLATILE reduce using rule 205 (declaration) VOLATILE [reduce using rule 272 (export-declaration)] FRIEND reduce using rule 205 (declaration) FRIEND [reduce using rule 272 (export-declaration)] TYPEDEF reduce using rule 205 (declaration) TYPEDEF [reduce using rule 272 (export-declaration)] CONSTEVAL reduce using rule 205 (declaration) CONSTEVAL [reduce using rule 272 (export-declaration)] CONSTINIT reduce using rule 205 (declaration) CONSTINIT [reduce using rule 272 (export-declaration)] DECLTYPE reduce using rule 205 (declaration) DECLTYPE [reduce using rule 272 (export-declaration)] ENUM reduce using rule 205 (declaration) ENUM [reduce using rule 272 (export-declaration)] EXPLICIT reduce using rule 205 (declaration) EXPLICIT [reduce using rule 272 (export-declaration)] MULT reduce using rule 205 (declaration) MULT [reduce using rule 272 (export-declaration)] MODULE reduce using rule 205 (declaration) MODULE [reduce using rule 272 (export-declaration)] IMPORT reduce using rule 205 (declaration) IMPORT [reduce using rule 272 (export-declaration)] NAMESPACE reduce using rule 205 (declaration) NAMESPACE [reduce using rule 272 (export-declaration)] COMPL reduce using rule 205 (declaration) COMPL [reduce using rule 272 (export-declaration)] AUTO reduce using rule 205 (declaration) AUTO [reduce using rule 272 (export-declaration)] CHAR reduce using rule 205 (declaration) CHAR [reduce using rule 272 (export-declaration)] CHAR8_T reduce using rule 205 (declaration) CHAR8_T [reduce using rule 272 (export-declaration)] CHAR16_T reduce using rule 205 (declaration) CHAR16_T [reduce using rule 272 (export-declaration)] CHAR32_T reduce using rule 205 (declaration) CHAR32_T [reduce using rule 272 (export-declaration)] WCHAR_T reduce using rule 205 (declaration) WCHAR_T [reduce using rule 272 (export-declaration)] BOOL reduce using rule 205 (declaration) BOOL [reduce using rule 272 (export-declaration)] SHORT reduce using rule 205 (declaration) SHORT [reduce using rule 272 (export-declaration)] INT reduce using rule 205 (declaration) INT [reduce using rule 272 (export-declaration)] LONG reduce using rule 205 (declaration) LONG [reduce using rule 272 (export-declaration)] SIGNED reduce using rule 205 (declaration) SIGNED [reduce using rule 272 (export-declaration)] UNSIGNED reduce using rule 205 (declaration) UNSIGNED [reduce using rule 272 (export-declaration)] FLOAT reduce using rule 205 (declaration) FLOAT [reduce using rule 272 (export-declaration)] DOUBLE reduce using rule 205 (declaration) DOUBLE [reduce using rule 272 (export-declaration)] VOID reduce using rule 205 (declaration) VOID [reduce using rule 272 (export-declaration)] STATIC_ASSERT reduce using rule 205 (declaration) STATIC_ASSERT [reduce using rule 272 (export-declaration)] STATIC reduce using rule 205 (declaration) STATIC [reduce using rule 272 (export-declaration)] THREAD_LOCAL reduce using rule 205 (declaration) THREAD_LOCAL [reduce using rule 272 (export-declaration)] MUTABLE reduce using rule 205 (declaration) MUTABLE [reduce using rule 272 (export-declaration)] $default reduce using rule 205 (declaration)

State 117

681 string-literalSTRING_LITERAL $default reduce using rule 681 (string-literal)

State 118

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 390 | EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 OPEN_BRACE shift, and go to state 213 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 214 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 119

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 265 explicit-specializationTEMPLATE LESS GREATER declaration 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 643 simple-template-id template-name LESS template-argument-list-opt GREATER 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 691 | TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 696 template-parameter type-parameter 697 | parameter-declaration 698 template-parameter-list template-parameter 699 | template-parameter-list COMMA template-parameter 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 712 type-name class-name 713 | enum-name 714 | typedef-name 715 type-parameter type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 716 | type-parameter-key IDENTIFIER-opt EQ type-id 717 | type-constraint ELLIPSIS-opt IDENTIFIER-opt 718 | type-constraint IDENTIFIER-opt EQ type-id 719 | template-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 720 | template-head type-parameter-key IDENTIFIER-opt EQ id-expression 721 type-parameter-key CLASS 722 | TYPENAME 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 215 TYPENAME shift, and go to state 216 CLASS shift, and go to state 217 DECLTYPE shift, and go to state 21 GREATER shift, and go to state 218 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 220 parameter-declaration go to state 221 simple-template-id go to state 96 template-head go to state 222 template-name go to state 102 template-parameter go to state 223 template-parameter-list go to state 224 type-constraint go to state 225 type-name go to state 106 type-parameter go to state 226 type-parameter-key go to state 227 typedef-name go to state 108

State 120

455 nested-name-specifierdecltype-specifier SCOPE SCOPE shift, and go to state 188

State 121

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 732 typename-specifierTYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 228 TEMPLATE shift, and go to state 229 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] TEMPLATE-opt go to state 230

State 122

44 alias-declarationUSING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 231

State 123

26 TYPENAME-optTYPENAME $default reduce using rule 26 (TYPENAME-opt)

State 124

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifierENUM nested-name-specifier-opt IDENTIFIER 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 133 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 125

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 763 using-declaratorTYPENAME-opt nested-name-specifier unqualified-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 232 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 126

767 using-enum-declarationUSING elaborated-enum-specifier SEMICOLON SEMICOLON shift, and go to state 233

State 127

5 ELLIPSIS-opt %empty [COMMA, SEMICOLON] 6 | ELLIPSIS 764 using-declarator-listusing-declarator ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 234

State 128

762 using-declarationUSING using-declarator-list SEMICOLON 765 using-declarator-listusing-declarator-list COMMA using-declarator ELLIPSIS-opt COMMA shift, and go to state 235 SEMICOLON shift, and go to state 236

State 129

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 214 | DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 276 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 130

244 enum-keyENUM CLASS $default reduce using rule 244 (enum-key)

State 131

245 enum-keyENUM STRUCT $default reduce using rule 245 (enum-key)

State 132

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 459 nested-name-specifier-optnested-name-specifier [IDENTIFIER] IDENTIFIER shift, and go to state 197 TEMPLATE shift, and go to state 229 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] IDENTIFIER [reduce using rule 459 (nested-name-specifier-opt)] TEMPLATE-opt go to state 199

State 133

228 elaborated-enum-specifierENUM nested-name-specifier-opt IDENTIFIER IDENTIFIER shift, and go to state 306

State 134

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 266 explicit-specifierEXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 308 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 135

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [EXPORT, MODULE] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 332 global-module-fragmentMODULE SEMICOLON declaration-seq-opt 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXPORT [reduce using rule 208 (declaration-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] MODULE reduce using rule 208 (declaration-seq-opt) NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 310 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 136

432 module-name-qualifierIDENTIFIER DOT DOT shift, and go to state 311

State 137

432 module-name-qualifier IDENTIFIER DOT 433 | module-name-qualifier IDENTIFIER DOT 434 module-name-qualifier-opt %empty [IDENTIFIER] 435 | module-name-qualifier 436 module-partitionCOLON module-name-qualifier-opt IDENTIFIER IDENTIFIER shift, and go to state 136 IDENTIFIER [reduce using rule 434 (module-name-qualifier-opt)] module-name-qualifier go to state 141 module-name-qualifier-opt go to state 312

State 138

339 header-nameHEADER_NAME $default reduce using rule 339 (header-name)

State 139

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 430 module-import-declarationIMPORT header-name attribute-specifier-seq-opt SEMICOLON $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 313

State 140

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 428 module-import-declarationIMPORT module-name attribute-specifier-seq-opt SEMICOLON $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 314

State 141

433 module-name-qualifiermodule-name-qualifier IDENTIFIER DOT 435 module-name-qualifier-optmodule-name-qualifier [IDENTIFIER] IDENTIFIER shift, and go to state 315 IDENTIFIER [reduce using rule 435 (module-name-qualifier-opt)]

State 142

431 module-namemodule-name-qualifier-opt IDENTIFIER IDENTIFIER shift, and go to state 316

State 143

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 429 module-import-declarationIMPORT module-partition attribute-specifier-seq-opt SEMICOLON $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 317

State 144

234 enclosing-namespace-specifierIDENTIFIER [SCOPE] 445 namespace-alias-definitionNAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON EQ shift, and go to state 318 $default reduce using rule 234 (enclosing-namespace-specifier)

State 145

235 enclosing-namespace-specifierenclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER 460 nested-namespace-definitionNAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE SCOPE shift, and go to state 319

State 146

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 320 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 147

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 264 | EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 321 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 148

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 443 named-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 753 unnamed-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 322

State 149

679 storage-class-specifierEXTERN $default reduce using rule 679 (storage-class-specifier)

State 150

188 decl-specifierINLINE $default reduce using rule 188 (decl-specifier)

State 151

71 attribute-declarationattribute-specifier-seq SEMICOLON $default reduce using rule 71 (attribute-declaration)

State 152

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 348 init-declarator declarator initializer-opt 349 | declarator requires-clause 350 init-declarator-list init-declarator 351 | init-declarator-list COMMA init-declarator 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 640 simple-declarationattribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator go to state 182 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 init-declarator go to state 183 init-declarator-list go to state 323 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 172 ptr-declarator go to state 173 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 153

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 239 enum-headenum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 324

State 154

330 function-specifierexplicit-specifier $default reduce using rule 330 (function-specifier)

State 155

6 ELLIPSIS-optELLIPSIS $default reduce using rule 6 (ELLIPSIS-opt)

State 156

766 using-directiveattribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON NAMESPACE shift, and go to state 325

State 157

45 alignment-specifierALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN OPEN_PAREN shift, and go to state 326

State 158

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 327 ptr-declarator go to state 328 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 159

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 593 ptr-operatorAND attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 329

State 160

49 asm-declarationattribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON OPEN_PAREN shift, and go to state 330

State 161

80 attribute-specifierOPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE OPEN_SQUARE shift, and go to state 331

State 162

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 594 ptr-operatorAND_AND attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 332

State 163

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 592 ptr-operatorMULT attribute-specifier-seq-opt cv-qualifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 333

State 164

137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 213 declarator-idELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 340 id-expression unqualified-id 341 | qualified-id 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 SCOPE shift, and go to state 6 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 COMPL shift, and go to state 334 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 120 enum-name go to state 71 id-expression go to state 335 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 336 operator-function-id go to state 289 qualified-id go to state 293 simple-template-id go to state 297 template-id go to state 299 template-name go to state 102 type-name go to state 106 typedef-name go to state 108 unqualified-id go to state 304

State 165

81 attribute-specifieralignment-specifier $default reduce using rule 81 (attribute-specifier)

State 166

82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier $default reduce using rule 82 (attribute-specifier-seq)

State 167

192 decl-specifier-seq-optdecl-specifier-seq [ELLIPSIS, IDENTIFIER, SCOPE, OPEN_PAREN, AND, AND_AND, OPERATOR, DECLTYPE, MULT, COMPL] 601 ref-qualifier AND 602 | AND_AND 603 ref-qualifier-opt %empty [OPEN_SQUARE] 604 | ref-qualifier 641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON AND shift, and go to state 337 AND_AND shift, and go to state 338 AND [reduce using rule 192 (decl-specifier-seq-opt)] OPEN_SQUARE reduce using rule 603 (ref-qualifier-opt) AND_AND [reduce using rule 192 (decl-specifier-seq-opt)] $default reduce using rule 192 (decl-specifier-seq-opt) ref-qualifier go to state 339 ref-qualifier-opt go to state 340

State 168

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator go to state 341 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 172 ptr-declarator go to state 173 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 169

476 nodeclspec-function-declarationattribute-specifier-seq-opt declarator SEMICOLON SEMICOLON shift, and go to state 342

State 170

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 490 noptr-declaratordeclarator-id attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 343

State 171

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 459 nested-name-specifier-optnested-name-specifier [IDENTIFIER] 595 ptr-operatornested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 645 simple-type-specifiernested-name-specifier TEMPLATE simple-template-id IDENTIFIER shift, and go to state 197 TEMPLATE shift, and go to state 198 MULT shift, and go to state 344 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] IDENTIFIER [reduce using rule 459 (nested-name-specifier-opt)] TEMPLATE-opt go to state 199

State 172

212 declaratornoptr-declarator parameters-and-qualifiers trailing-return-type 491 noptr-declaratornoptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 553 parameters-and-qualifiers OPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt 590 ptr-declaratornoptr-declarator [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] OPEN_PAREN shift, and go to state 345 OPEN_SQUARE shift, and go to state 346 OPEN_PAREN [reduce using rule 590 (ptr-declarator)] $default reduce using rule 590 (ptr-declarator) parameters-and-qualifiers go to state 347

State 173

211 declaratorptr-declarator $default reduce using rule 211 (declarator)

State 174

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 327 ptr-declarator go to state 348 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 175

36 access-specifier PRIVATE 37 | PROTECTED 38 | PUBLIC 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, COLON, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 142 class-specifierclass-head OPEN_BRACE member-specification-opt CLOSE_BRACE 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 233 empty-declaration SEMICOLON 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 404 member-declaration attribute-specifier-seq-opt decl-specifier-seq-opt member-declarator-list-opt SEMICOLON 405 | function-definition 406 | using-declaration 407 | using-enum-declaration 408 | static_assert-declaration 409 | template-declaration 410 | explicit-specialization 411 | deduction-guide 412 | alias-declaration 413 | opaque-enum-declaration 414 | empty-declaration 423 member-specification member-declaration member-specification-opt 424 | access-specifier COLON member-specification-opt 425 member-specification-opt %empty [CLOSE_BRACE] 426 | member-specification 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 762 using-declaration USING using-declarator-list SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON TEMPLATE shift, and go to state 7 PRIVATE shift, and go to state 349 PROTECTED shift, and go to state 350 PUBLIC shift, and go to state 351 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 ENUM shift, and go to state 352 EXPLICIT shift, and go to state 23 STATIC_ASSERT shift, and go to state 41 IDENTIFIER reduce using rule 83 (attribute-specifier-seq-opt) IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] SEMICOLON [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 425 (member-specification-opt) ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) access-specifier go to state 353 alias-declaration go to state 354 attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 355 deduction-guide go to state 356 empty-declaration go to state 357 enum-key go to state 358 explicit-specialization go to state 359 explicit-specifier go to state 360 explicit-specifier-opt go to state 76 function-definition go to state 361 member-declaration go to state 362 member-specification go to state 363 member-specification-opt go to state 364 opaque-enum-declaration go to state 365 static_assert-declaration go to state 366 template-declaration go to state 367 template-head go to state 101 using-declaration go to state 368 using-enum-declaration go to state 369

State 176

84 attribute-specifier-seq-optattribute-specifier-seq $default reduce using rule 84 (attribute-specifier-seq-opt)

State 177

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 99 base-clause COLON base-specifier-list 100 base-clause-opt %empty [OPEN_BRACE] 101 | base-clause 131 class-headclass-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 133 class-head-name nested-name-specifier-opt class-name 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 COLON shift, and go to state 370 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] $default reduce using rule 100 (base-clause-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 base-clause go to state 371 base-clause-opt go to state 372 class-head-name go to state 373 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 374 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 178

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 231 elaborated-type-specifierclass-key nested-name-specifier TEMPLATE-opt simple-template-id 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE IDENTIFIER shift, and go to state 197 TEMPLATE shift, and go to state 229 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] TEMPLATE-opt go to state 375

State 179

138 class-namesimple-template-id [SCOPE] 230 elaborated-type-specifierclass-key simple-template-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 731 typedef-namesimple-template-id [SCOPE] SCOPE reduce using rule 138 (class-name) SCOPE [reduce using rule 230 (elaborated-type-specifier)] SCOPE [reduce using rule 731 (typedef-name)] $default reduce using rule 230 (elaborated-type-specifier)

State 180

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 189 decl-specifier-seqdecl-specifier attribute-specifier-seq-opt [COMMA, ELLIPSIS, IDENTIFIER, NOEXCEPT, SCOPE, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, OPEN_SQUARE, COLON, OPEN_BRACE, AND_AND, OPERATOR, DECLTYPE, DEREF, GREATER, MULT, REQUIRES, COMPL] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 ALIGNAS [reduce using rule 189 (decl-specifier-seq)] OPEN_SQUARE [reduce using rule 189 (decl-specifier-seq)] $default reduce using rule 189 (decl-specifier-seq) alignment-specifier go to state 165 attribute-specifier go to state 166

State 181

190 decl-specifier-seqdecl-specifier decl-specifier-seq $default reduce using rule 190 (decl-specifier-seq)

State 182

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 348 init-declaratordeclarator initializer-opt 349 | declarator requires-clause 359 initializer brace-or-equal-initializer 360 | OPEN_PAREN expression-list CLOSE_PAREN 365 initializer-opt %empty [COMMA, SEMICOLON] 366 | initializer 620 requires-clause REQUIRES constraint-logical-or-expression EQ shift, and go to state 376 OPEN_PAREN shift, and go to state 377 OPEN_BRACE shift, and go to state 378 REQUIRES shift, and go to state 379 $default reduce using rule 365 (initializer-opt) brace-or-equal-initializer go to state 380 braced-init-list go to state 381 initializer go to state 382 initializer-opt go to state 383 requires-clause go to state 384

State 183

350 init-declarator-listinit-declarator $default reduce using rule 350 (init-declarator-list)

State 184

351 init-declarator-listinit-declarator-list COMMA init-declarator 353 init-declarator-list-optinit-declarator-list [SEMICOLON] COMMA shift, and go to state 385 $default reduce using rule 353 (init-declarator-list-opt)

State 185

639 simple-declarationdecl-specifier-seq init-declarator-list-opt SEMICOLON SEMICOLON shift, and go to state 386

State 186

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 595 ptr-operatornested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt IDENTIFIER shift, and go to state 197 TEMPLATE shift, and go to state 229 MULT shift, and go to state 344 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] TEMPLATE-opt go to state 199

State 187

207 declaration-seqdeclaration-seq declaration $default reduce using rule 207 (declaration-seq)

State 188

455 nested-name-specifierdecltype-specifier SCOPE $default reduce using rule 455 (nested-name-specifier)

State 189

247 enum-specifierenum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 249 enumerator IDENTIFIER attribute-specifier-seq-opt 250 enumerator-definition enumerator 251 | enumerator EQ constant-expression 252 enumerator-list enumerator-definition 253 | enumerator-list COMMA enumerator-definition 254 enumerator-list-opt %empty [CLOSE_BRACE] 255 | enumerator-list IDENTIFIER shift, and go to state 387 $default reduce using rule 254 (enumerator-list-opt) enumerator go to state 388 enumerator-definition go to state 389 enumerator-list go to state 390 enumerator-list-opt go to state 391

State 190

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 239 enum-headenum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 240 enum-head-name nested-name-specifier-opt IDENTIFIER 241 enum-head-name-opt %empty [COLON, OPEN_BRACE] 242 | enum-head-name 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] $default reduce using rule 241 (enum-head-name-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 class-name go to state 55 decltype-specifier go to state 120 enum-head-name go to state 392 enum-head-name-opt go to state 393 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 394 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 191

695 template-nameIDENTIFIER $default reduce using rule 695 (template-name)

State 192

215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON OPEN_PAREN shift, and go to state 395

State 193

8 EXPORT-optEXPORT $default reduce using rule 8 (EXPORT-opt)

State 194

427 module-declarationEXPORT-opt MODULE module-name module-partition-opt attribute-specifier-seq-opt SEMICOLON MODULE shift, and go to state 396

State 195

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [$end, MODULE] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 705 translation-unitglobal-module-fragment-opt module-declaration declaration-seq-opt private-module-fragment-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 $end reduce using rule 208 (declaration-seq-opt) CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] MODULE reduce using rule 208 (declaration-seq-opt) NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 397 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 196

454 nested-name-specifiernamespace-name SCOPE $default reduce using rule 454 (nested-name-specifier)

State 197

456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE SCOPE shift, and go to state 398

State 198

22 TEMPLATE-optTEMPLATE [IDENTIFIER, OPERATOR, COMPL] 643 simple-template-id template-name LESS template-argument-list-opt GREATER 645 simple-type-specifiernested-name-specifier TEMPLATE simple-template-id 695 template-name IDENTIFIER IDENTIFIER shift, and go to state 191 IDENTIFIER [reduce using rule 22 (TEMPLATE-opt)] $default reduce using rule 22 (TEMPLATE-opt) simple-template-id go to state 399 template-name go to state 102

State 199

457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER IDENTIFIER shift, and go to state 191 simple-template-id go to state 400 template-name go to state 102

State 200

137 class-nameIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 151 concept-nameIDENTIFIER [DECLTYPE, LESS, AUTO] 246 enum-nameIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 695 template-nameIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 730 typedef-nameIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] COMMA reduce using rule 137 (class-name) COMMA [reduce using rule 246 (enum-name)] COMMA [reduce using rule 695 (template-name)] COMMA [reduce using rule 730 (typedef-name)] CONSTEXPR reduce using rule 137 (class-name) CONSTEXPR [reduce using rule 246 (enum-name)] CONSTEXPR [reduce using rule 695 (template-name)] CONSTEXPR [reduce using rule 730 (typedef-name)] ELLIPSIS reduce using rule 137 (class-name) ELLIPSIS [reduce using rule 246 (enum-name)] ELLIPSIS [reduce using rule 695 (template-name)] ELLIPSIS [reduce using rule 730 (typedef-name)] EXPORT reduce using rule 137 (class-name) EXPORT [reduce using rule 246 (enum-name)] EXPORT [reduce using rule 695 (template-name)] EXPORT [reduce using rule 730 (typedef-name)] EXTERN reduce using rule 137 (class-name) EXTERN [reduce using rule 246 (enum-name)] EXTERN [reduce using rule 695 (template-name)] EXTERN [reduce using rule 730 (typedef-name)] IDENTIFIER reduce using rule 137 (class-name) IDENTIFIER [reduce using rule 246 (enum-name)] IDENTIFIER [reduce using rule 695 (template-name)] IDENTIFIER [reduce using rule 730 (typedef-name)] INLINE reduce using rule 137 (class-name) INLINE [reduce using rule 246 (enum-name)] INLINE [reduce using rule 695 (template-name)] INLINE [reduce using rule 730 (typedef-name)] NOEXCEPT reduce using rule 137 (class-name) NOEXCEPT [reduce using rule 246 (enum-name)] NOEXCEPT [reduce using rule 695 (template-name)] NOEXCEPT [reduce using rule 730 (typedef-name)] SCOPE reduce using rule 137 (class-name) SCOPE [reduce using rule 246 (enum-name)] SCOPE [reduce using rule 695 (template-name)] SCOPE [reduce using rule 730 (typedef-name)] TEMPLATE reduce using rule 137 (class-name) TEMPLATE [reduce using rule 246 (enum-name)] TEMPLATE [reduce using rule 695 (template-name)] TEMPLATE [reduce using rule 730 (typedef-name)] TYPENAME reduce using rule 137 (class-name) TYPENAME [reduce using rule 246 (enum-name)] TYPENAME [reduce using rule 695 (template-name)] TYPENAME [reduce using rule 730 (typedef-name)] VIRTUAL reduce using rule 137 (class-name) VIRTUAL [reduce using rule 246 (enum-name)] VIRTUAL [reduce using rule 695 (template-name)] VIRTUAL [reduce using rule 730 (typedef-name)] PLUS reduce using rule 137 (class-name) PLUS [reduce using rule 246 (enum-name)] PLUS [reduce using rule 695 (template-name)] PLUS [reduce using rule 730 (typedef-name)] MINUS reduce using rule 137 (class-name) MINUS [reduce using rule 246 (enum-name)] MINUS [reduce using rule 695 (template-name)] MINUS [reduce using rule 730 (typedef-name)] USING reduce using rule 137 (class-name) USING [reduce using rule 246 (enum-name)] USING [reduce using rule 695 (template-name)] USING [reduce using rule 730 (typedef-name)] EQ reduce using rule 137 (class-name) EQ [reduce using rule 246 (enum-name)] EQ [reduce using rule 695 (template-name)] EQ [reduce using rule 730 (typedef-name)] SEMICOLON reduce using rule 137 (class-name) SEMICOLON [reduce using rule 246 (enum-name)] SEMICOLON [reduce using rule 695 (template-name)] SEMICOLON [reduce using rule 730 (typedef-name)] ALIGNAS reduce using rule 137 (class-name) ALIGNAS [reduce using rule 246 (enum-name)] ALIGNAS [reduce using rule 695 (template-name)] ALIGNAS [reduce using rule 730 (typedef-name)] OPEN_PAREN reduce using rule 137 (class-name) OPEN_PAREN [reduce using rule 246 (enum-name)] OPEN_PAREN [reduce using rule 695 (template-name)] OPEN_PAREN [reduce using rule 730 (typedef-name)] CLOSE_PAREN reduce using rule 137 (class-name) CLOSE_PAREN [reduce using rule 246 (enum-name)] CLOSE_PAREN [reduce using rule 695 (template-name)] CLOSE_PAREN [reduce using rule 730 (typedef-name)] AND reduce using rule 137 (class-name) AND [reduce using rule 246 (enum-name)] AND [reduce using rule 695 (template-name)] AND [reduce using rule 730 (typedef-name)] ASM reduce using rule 137 (class-name) ASM [reduce using rule 246 (enum-name)] ASM [reduce using rule 695 (template-name)] ASM [reduce using rule 730 (typedef-name)] MULT_EQ reduce using rule 137 (class-name) MULT_EQ [reduce using rule 246 (enum-name)] MULT_EQ [reduce using rule 695 (template-name)] MULT_EQ [reduce using rule 730 (typedef-name)] DIV_EQ reduce using rule 137 (class-name) DIV_EQ [reduce using rule 246 (enum-name)] DIV_EQ [reduce using rule 695 (template-name)] DIV_EQ [reduce using rule 730 (typedef-name)] MOD_EQ reduce using rule 137 (class-name) MOD_EQ [reduce using rule 246 (enum-name)] MOD_EQ [reduce using rule 695 (template-name)] MOD_EQ [reduce using rule 730 (typedef-name)] PLUS_EQ reduce using rule 137 (class-name) PLUS_EQ [reduce using rule 246 (enum-name)] PLUS_EQ [reduce using rule 695 (template-name)] PLUS_EQ [reduce using rule 730 (typedef-name)] MINUS_EQ reduce using rule 137 (class-name) MINUS_EQ [reduce using rule 246 (enum-name)] MINUS_EQ [reduce using rule 695 (template-name)] MINUS_EQ [reduce using rule 730 (typedef-name)] RSHIFT_EQ reduce using rule 137 (class-name) RSHIFT_EQ [reduce using rule 246 (enum-name)] RSHIFT_EQ [reduce using rule 695 (template-name)] RSHIFT_EQ [reduce using rule 730 (typedef-name)] LSHIFT_EQ reduce using rule 137 (class-name) LSHIFT_EQ [reduce using rule 246 (enum-name)] LSHIFT_EQ [reduce using rule 695 (template-name)] LSHIFT_EQ [reduce using rule 730 (typedef-name)] AND_EQ reduce using rule 137 (class-name) AND_EQ [reduce using rule 246 (enum-name)] AND_EQ [reduce using rule 695 (template-name)] AND_EQ [reduce using rule 730 (typedef-name)] XOR_EQ reduce using rule 137 (class-name) XOR_EQ [reduce using rule 246 (enum-name)] XOR_EQ [reduce using rule 695 (template-name)] XOR_EQ [reduce using rule 730 (typedef-name)] OR_EQ reduce using rule 137 (class-name) OR_EQ [reduce using rule 246 (enum-name)] OR_EQ [reduce using rule 695 (template-name)] OR_EQ [reduce using rule 730 (typedef-name)] OPEN_SQUARE reduce using rule 137 (class-name) OPEN_SQUARE [reduce using rule 246 (enum-name)] OPEN_SQUARE [reduce using rule 695 (template-name)] OPEN_SQUARE [reduce using rule 730 (typedef-name)] CLOSE_SQUARE reduce using rule 137 (class-name) CLOSE_SQUARE [reduce using rule 246 (enum-name)] CLOSE_SQUARE [reduce using rule 695 (template-name)] CLOSE_SQUARE [reduce using rule 730 (typedef-name)] COLON reduce using rule 137 (class-name) COLON [reduce using rule 246 (enum-name)] COLON [reduce using rule 695 (template-name)] COLON [reduce using rule 730 (typedef-name)] OPEN_BRACE reduce using rule 137 (class-name) OPEN_BRACE [reduce using rule 246 (enum-name)] OPEN_BRACE [reduce using rule 695 (template-name)] OPEN_BRACE [reduce using rule 730 (typedef-name)] CLOSE_BRACE reduce using rule 137 (class-name) CLOSE_BRACE [reduce using rule 246 (enum-name)] CLOSE_BRACE [reduce using rule 695 (template-name)] CLOSE_BRACE [reduce using rule 730 (typedef-name)] CLASS reduce using rule 137 (class-name) CLASS [reduce using rule 246 (enum-name)] CLASS [reduce using rule 695 (template-name)] CLASS [reduce using rule 730 (typedef-name)] STRUCT reduce using rule 137 (class-name) STRUCT [reduce using rule 246 (enum-name)] STRUCT [reduce using rule 695 (template-name)] STRUCT [reduce using rule 730 (typedef-name)] UNION reduce using rule 137 (class-name) UNION [reduce using rule 246 (enum-name)] UNION [reduce using rule 695 (template-name)] UNION [reduce using rule 730 (typedef-name)] FINAL reduce using rule 137 (class-name) FINAL [reduce using rule 246 (enum-name)] FINAL [reduce using rule 695 (template-name)] FINAL [reduce using rule 730 (typedef-name)] SPACESHIP reduce using rule 137 (class-name) SPACESHIP [reduce using rule 246 (enum-name)] SPACESHIP [reduce using rule 695 (template-name)] SPACESHIP [reduce using rule 730 (typedef-name)] CONCEPT reduce using rule 137 (class-name) CONCEPT [reduce using rule 246 (enum-name)] CONCEPT [reduce using rule 695 (template-name)] CONCEPT [reduce using rule 730 (typedef-name)] QUERY reduce using rule 137 (class-name) QUERY [reduce using rule 246 (enum-name)] QUERY [reduce using rule 695 (template-name)] QUERY [reduce using rule 730 (typedef-name)] AND_AND reduce using rule 137 (class-name) AND_AND [reduce using rule 246 (enum-name)] AND_AND [reduce using rule 695 (template-name)] AND_AND [reduce using rule 730 (typedef-name)] OR_OR reduce using rule 137 (class-name) OR_OR [reduce using rule 246 (enum-name)] OR_OR [reduce using rule 695 (template-name)] OR_OR [reduce using rule 730 (typedef-name)] OPERATOR reduce using rule 137 (class-name) OPERATOR [reduce using rule 246 (enum-name)] OPERATOR [reduce using rule 695 (template-name)] OPERATOR [reduce using rule 730 (typedef-name)] CONST reduce using rule 137 (class-name) CONST [reduce using rule 246 (enum-name)] CONST [reduce using rule 695 (template-name)] CONST [reduce using rule 730 (typedef-name)] VOLATILE reduce using rule 137 (class-name) VOLATILE [reduce using rule 246 (enum-name)] VOLATILE [reduce using rule 695 (template-name)] VOLATILE [reduce using rule 730 (typedef-name)] FRIEND reduce using rule 137 (class-name) FRIEND [reduce using rule 246 (enum-name)] FRIEND [reduce using rule 695 (template-name)] FRIEND [reduce using rule 730 (typedef-name)] TYPEDEF reduce using rule 137 (class-name) TYPEDEF [reduce using rule 246 (enum-name)] TYPEDEF [reduce using rule 695 (template-name)] TYPEDEF [reduce using rule 730 (typedef-name)] CONSTEVAL reduce using rule 137 (class-name) CONSTEVAL [reduce using rule 246 (enum-name)] CONSTEVAL [reduce using rule 695 (template-name)] CONSTEVAL [reduce using rule 730 (typedef-name)] CONSTINIT reduce using rule 137 (class-name) CONSTINIT [reduce using rule 246 (enum-name)] CONSTINIT [reduce using rule 695 (template-name)] CONSTINIT [reduce using rule 730 (typedef-name)] DECLTYPE reduce using rule 137 (class-name) DECLTYPE [reduce using rule 151 (concept-name)] DECLTYPE [reduce using rule 246 (enum-name)] DECLTYPE [reduce using rule 695 (template-name)] DECLTYPE [reduce using rule 730 (typedef-name)] DEREF reduce using rule 137 (class-name) DEREF [reduce using rule 246 (enum-name)] DEREF [reduce using rule 695 (template-name)] DEREF [reduce using rule 730 (typedef-name)] DOT reduce using rule 137 (class-name) DOT [reduce using rule 246 (enum-name)] DOT [reduce using rule 695 (template-name)] DOT [reduce using rule 730 (typedef-name)] ENUM reduce using rule 137 (class-name) ENUM [reduce using rule 246 (enum-name)] ENUM [reduce using rule 695 (template-name)] ENUM [reduce using rule 730 (typedef-name)] EQ_EQ reduce using rule 137 (class-name) EQ_EQ [reduce using rule 246 (enum-name)] EQ_EQ [reduce using rule 695 (template-name)] EQ_EQ [reduce using rule 730 (typedef-name)] NOT_EQ reduce using rule 137 (class-name) NOT_EQ [reduce using rule 246 (enum-name)] NOT_EQ [reduce using rule 695 (template-name)] NOT_EQ [reduce using rule 730 (typedef-name)] XOR reduce using rule 137 (class-name) XOR [reduce using rule 246 (enum-name)] XOR [reduce using rule 695 (template-name)] XOR [reduce using rule 730 (typedef-name)] LESS reduce using rule 137 (class-name) LESS [reduce using rule 151 (concept-name)] LESS [reduce using rule 246 (enum-name)] LESS [reduce using rule 695 (template-name)] LESS [reduce using rule 730 (typedef-name)] GREATER reduce using rule 137 (class-name) GREATER [reduce using rule 246 (enum-name)] GREATER [reduce using rule 695 (template-name)] GREATER [reduce using rule 730 (typedef-name)] EXPLICIT reduce using rule 137 (class-name) EXPLICIT [reduce using rule 246 (enum-name)] EXPLICIT [reduce using rule 695 (template-name)] EXPLICIT [reduce using rule 730 (typedef-name)] MULT reduce using rule 137 (class-name) MULT [reduce using rule 246 (enum-name)] MULT [reduce using rule 695 (template-name)] MULT [reduce using rule 730 (typedef-name)] DIV reduce using rule 137 (class-name) DIV [reduce using rule 246 (enum-name)] DIV [reduce using rule 695 (template-name)] DIV [reduce using rule 730 (typedef-name)] MOD reduce using rule 137 (class-name) MOD [reduce using rule 246 (enum-name)] MOD [reduce using rule 695 (template-name)] MOD [reduce using rule 730 (typedef-name)] OR reduce using rule 137 (class-name) OR [reduce using rule 246 (enum-name)] OR [reduce using rule 695 (template-name)] OR [reduce using rule 730 (typedef-name)] LSHIFT reduce using rule 137 (class-name) LSHIFT [reduce using rule 246 (enum-name)] LSHIFT [reduce using rule 695 (template-name)] LSHIFT [reduce using rule 730 (typedef-name)] RSHIFT reduce using rule 137 (class-name) RSHIFT [reduce using rule 246 (enum-name)] RSHIFT [reduce using rule 695 (template-name)] RSHIFT [reduce using rule 730 (typedef-name)] LESS_EQ reduce using rule 137 (class-name) LESS_EQ [reduce using rule 246 (enum-name)] LESS_EQ [reduce using rule 695 (template-name)] LESS_EQ [reduce using rule 730 (typedef-name)] GREATER_EQ reduce using rule 137 (class-name) GREATER_EQ [reduce using rule 246 (enum-name)] GREATER_EQ [reduce using rule 695 (template-name)] GREATER_EQ [reduce using rule 730 (typedef-name)] DOT_STAR reduce using rule 137 (class-name) DOT_STAR [reduce using rule 246 (enum-name)] DOT_STAR [reduce using rule 695 (template-name)] DOT_STAR [reduce using rule 730 (typedef-name)] DEREF_STAR reduce using rule 137 (class-name) DEREF_STAR [reduce using rule 246 (enum-name)] DEREF_STAR [reduce using rule 695 (template-name)] DEREF_STAR [reduce using rule 730 (typedef-name)] TRY reduce using rule 137 (class-name) TRY [reduce using rule 246 (enum-name)] TRY [reduce using rule 695 (template-name)] TRY [reduce using rule 730 (typedef-name)] IMPORT reduce using rule 137 (class-name) IMPORT [reduce using rule 246 (enum-name)] IMPORT [reduce using rule 695 (template-name)] IMPORT [reduce using rule 730 (typedef-name)] NAMESPACE reduce using rule 137 (class-name) NAMESPACE [reduce using rule 246 (enum-name)] NAMESPACE [reduce using rule 695 (template-name)] NAMESPACE [reduce using rule 730 (typedef-name)] REQUIRES reduce using rule 137 (class-name) REQUIRES [reduce using rule 246 (enum-name)] REQUIRES [reduce using rule 695 (template-name)] REQUIRES [reduce using rule 730 (typedef-name)] COMPL reduce using rule 137 (class-name) COMPL [reduce using rule 246 (enum-name)] COMPL [reduce using rule 695 (template-name)] COMPL [reduce using rule 730 (typedef-name)] PLUS_PLUS reduce using rule 137 (class-name) PLUS_PLUS [reduce using rule 246 (enum-name)] PLUS_PLUS [reduce using rule 695 (template-name)] PLUS_PLUS [reduce using rule 730 (typedef-name)] MINUS_MINUS reduce using rule 137 (class-name) MINUS_MINUS [reduce using rule 246 (enum-name)] MINUS_MINUS [reduce using rule 695 (template-name)] MINUS_MINUS [reduce using rule 730 (typedef-name)] AUTO reduce using rule 137 (class-name) AUTO [reduce using rule 151 (concept-name)] AUTO [reduce using rule 246 (enum-name)] AUTO [reduce using rule 695 (template-name)] AUTO [reduce using rule 730 (typedef-name)] CHAR reduce using rule 137 (class-name) CHAR [reduce using rule 246 (enum-name)] CHAR [reduce using rule 695 (template-name)] CHAR [reduce using rule 730 (typedef-name)] CHAR8_T reduce using rule 137 (class-name) CHAR8_T [reduce using rule 246 (enum-name)] CHAR8_T [reduce using rule 695 (template-name)] CHAR8_T [reduce using rule 730 (typedef-name)] CHAR16_T reduce using rule 137 (class-name) CHAR16_T [reduce using rule 246 (enum-name)] CHAR16_T [reduce using rule 695 (template-name)] CHAR16_T [reduce using rule 730 (typedef-name)] CHAR32_T reduce using rule 137 (class-name) CHAR32_T [reduce using rule 246 (enum-name)] CHAR32_T [reduce using rule 695 (template-name)] CHAR32_T [reduce using rule 730 (typedef-name)] WCHAR_T reduce using rule 137 (class-name) WCHAR_T [reduce using rule 246 (enum-name)] WCHAR_T [reduce using rule 695 (template-name)] WCHAR_T [reduce using rule 730 (typedef-name)] BOOL reduce using rule 137 (class-name) BOOL [reduce using rule 246 (enum-name)] BOOL [reduce using rule 695 (template-name)] BOOL [reduce using rule 730 (typedef-name)] SHORT reduce using rule 137 (class-name) SHORT [reduce using rule 246 (enum-name)] SHORT [reduce using rule 695 (template-name)] SHORT [reduce using rule 730 (typedef-name)] INT reduce using rule 137 (class-name) INT [reduce using rule 246 (enum-name)] INT [reduce using rule 695 (template-name)] INT [reduce using rule 730 (typedef-name)] LONG reduce using rule 137 (class-name) LONG [reduce using rule 246 (enum-name)] LONG [reduce using rule 695 (template-name)] LONG [reduce using rule 730 (typedef-name)] SIGNED reduce using rule 137 (class-name) SIGNED [reduce using rule 246 (enum-name)] SIGNED [reduce using rule 695 (template-name)] SIGNED [reduce using rule 730 (typedef-name)] UNSIGNED reduce using rule 137 (class-name) UNSIGNED [reduce using rule 246 (enum-name)] UNSIGNED [reduce using rule 695 (template-name)] UNSIGNED [reduce using rule 730 (typedef-name)] FLOAT reduce using rule 137 (class-name) FLOAT [reduce using rule 246 (enum-name)] FLOAT [reduce using rule 695 (template-name)] FLOAT [reduce using rule 730 (typedef-name)] DOUBLE reduce using rule 137 (class-name) DOUBLE [reduce using rule 246 (enum-name)] DOUBLE [reduce using rule 695 (template-name)] DOUBLE [reduce using rule 730 (typedef-name)] VOID reduce using rule 137 (class-name) VOID [reduce using rule 246 (enum-name)] VOID [reduce using rule 695 (template-name)] VOID [reduce using rule 730 (typedef-name)] STATIC_ASSERT reduce using rule 137 (class-name) STATIC_ASSERT [reduce using rule 246 (enum-name)] STATIC_ASSERT [reduce using rule 695 (template-name)] STATIC_ASSERT [reduce using rule 730 (typedef-name)] STATIC reduce using rule 137 (class-name) STATIC [reduce using rule 246 (enum-name)] STATIC [reduce using rule 695 (template-name)] STATIC [reduce using rule 730 (typedef-name)] THREAD_LOCAL reduce using rule 137 (class-name) THREAD_LOCAL [reduce using rule 246 (enum-name)] THREAD_LOCAL [reduce using rule 695 (template-name)] THREAD_LOCAL [reduce using rule 730 (typedef-name)] MUTABLE reduce using rule 137 (class-name) MUTABLE [reduce using rule 246 (enum-name)] MUTABLE [reduce using rule 695 (template-name)] MUTABLE [reduce using rule 730 (typedef-name)] OVERRIDE reduce using rule 137 (class-name) OVERRIDE [reduce using rule 246 (enum-name)] OVERRIDE [reduce using rule 695 (template-name)] OVERRIDE [reduce using rule 730 (typedef-name)] $default reduce using rule 137 (class-name)

State 201

707 type-constraintnested-name-specifier-opt concept-name [COMMA, ELLIPSIS, IDENTIFIER, EQ, SEMICOLON, DECLTYPE, GREATER, AUTO] 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER LESS shift, and go to state 401 $default reduce using rule 707 (type-constraint)

State 202

643 simple-template-idtemplate-name LESS template-argument-list-opt GREATER 648 simple-type-specifiernested-name-specifier-opt template-name [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] LESS shift, and go to state 207 LESS [reduce using rule 648 (simple-type-specifier)] $default reduce using rule 648 (simple-type-specifier)

State 203

644 simple-type-specifiernested-name-specifier-opt type-name $default reduce using rule 644 (simple-type-specifier)

State 204

150 concept-definitionCONCEPT concept-name EQ constraint-expression SEMICOLON 151 concept-name IDENTIFIER IDENTIFIER shift, and go to state 402 concept-name go to state 403

State 205

690 template-declarationtemplate-head concept-definition $default reduce using rule 690 (template-declaration)

State 206

689 template-declarationtemplate-head declaration $default reduce using rule 689 (template-declaration)

State 207

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 643 | template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 682 template-argument constant-expression 683 | type-id 684 | id-expression 685 template-argument-list template-argument ELLIPSIS-opt 686 | template-argument-list COMMA template-argument ELLIPSIS-opt 687 template-argument-list-opt %empty [GREATER] 688 | template-argument-list 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] GREATER reduce using rule 687 (template-argument-list-opt) AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 405 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 406 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-argument go to state 408 template-argument-list go to state 409 template-argument-list-opt go to state 410 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 411 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 208

0 $accepttranslation-unit $end $default accept

State 209

555 placeholder-type-specifiertype-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN OPEN_PAREN shift, and go to state 415

State 210

554 placeholder-type-specifiertype-constraint-opt AUTO $default reduce using rule 554 (placeholder-type-specifier)

State 211

453 nested-name-specifiertype-name SCOPE $default reduce using rule 453 (nested-name-specifier)

State 212

271 export-declarationEXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE CLOSE_BRACE shift, and go to state 416

State 213

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [CLOSE_BRACE] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 390 | EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 208 (declaration-seq-opt) CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 417 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 214

391 linkage-specificationEXTERN string-literal declaration $default reduce using rule 391 (linkage-specification)

State 215

691 template-headTEMPLATE LESS template-parameter-list GREATER requires-clause-opt LESS shift, and go to state 418

State 216

722 type-parameter-keyTYPENAME $default reduce using rule 722 (type-parameter-key)

State 217

721 type-parameter-keyCLASS $default reduce using rule 721 (type-parameter-key)

State 218

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 265 | TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 419 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 219

23 THIS-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 24 | THIS 45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 543 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause THIS shift, and go to state 420 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 $default reduce using rule 23 (THIS-opt) THIS-opt go to state 421 alignment-specifier go to state 165 attribute-specifier go to state 166

State 220

151 concept-name IDENTIFIER 707 type-constraintnested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER IDENTIFIER shift, and go to state 402 concept-name go to state 201

State 221

697 template-parameterparameter-declaration $default reduce using rule 697 (template-parameter)

State 222

719 type-parametertemplate-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 720 | template-head type-parameter-key IDENTIFIER-opt EQ id-expression 721 type-parameter-key CLASS 722 | TYPENAME TYPENAME shift, and go to state 216 CLASS shift, and go to state 217 type-parameter-key go to state 422

State 223

698 template-parameter-listtemplate-parameter $default reduce using rule 698 (template-parameter-list)

State 224

691 template-headTEMPLATE LESS template-parameter-list GREATER requires-clause-opt 699 template-parameter-listtemplate-parameter-list COMMA template-parameter COMMA shift, and go to state 423 GREATER shift, and go to state 424

State 225

5 ELLIPSIS-opt %empty [COMMA, IDENTIFIER, GREATER] 6 | ELLIPSIS 11 IDENTIFIER-opt %empty [EQ] 12 | IDENTIFIER 717 type-parametertype-constraint ELLIPSIS-opt IDENTIFIER-opt 718 | type-constraint IDENTIFIER-opt EQ type-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 425 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] EQ reduce using rule 11 (IDENTIFIER-opt) $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 426 IDENTIFIER-opt go to state 427

State 226

696 template-parametertype-parameter $default reduce using rule 696 (template-parameter)

State 227

5 ELLIPSIS-opt %empty [COMMA, IDENTIFIER, GREATER] 6 | ELLIPSIS 11 IDENTIFIER-opt %empty [EQ] 12 | IDENTIFIER 715 type-parametertype-parameter-key ELLIPSIS-opt IDENTIFIER-opt 716 | type-parameter-key IDENTIFIER-opt EQ type-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 425 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] EQ reduce using rule 11 (IDENTIFIER-opt) $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 428 IDENTIFIER-opt go to state 429

State 228

456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 732 typename-specifierTYPENAME nested-name-specifier IDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] SCOPE shift, and go to state 398 SCOPE [reduce using rule 732 (typename-specifier)] $default reduce using rule 732 (typename-specifier)

State 229

22 TEMPLATE-optTEMPLATE $default reduce using rule 22 (TEMPLATE-opt)

State 230

457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 733 typename-specifierTYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 191 simple-template-id go to state 430 template-name go to state 102

State 231

44 alias-declarationUSING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier EQ shift, and go to state 431 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 alignment-specifier go to state 165 attribute-specifier go to state 166

State 232

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 169 conversion-function-id OPERATOR conversion-type-id 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 763 using-declaratorTYPENAME-opt nested-name-specifier unqualified-id IDENTIFIER shift, and go to state 432 TEMPLATE shift, and go to state 229 OPERATOR shift, and go to state 248 COMPL shift, and go to state 334 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] TEMPLATE-opt go to state 199 conversion-function-id go to state 272 literal-operator-id go to state 282 operator-function-id go to state 289 simple-template-id go to state 433 template-id go to state 299 template-name go to state 102 unqualified-id go to state 434

State 233

767 using-enum-declarationUSING elaborated-enum-specifier SEMICOLON $default reduce using rule 767 (using-enum-declaration)

State 234

764 using-declarator-listusing-declarator ELLIPSIS-opt $default reduce using rule 764 (using-declarator-list)

State 235

25 TYPENAME-opt %empty [IDENTIFIER, SCOPE, DECLTYPE] 26 | TYPENAME 763 using-declarator TYPENAME-opt nested-name-specifier unqualified-id 765 using-declarator-listusing-declarator-list COMMA using-declarator ELLIPSIS-opt TYPENAME shift, and go to state 123 $default reduce using rule 25 (TYPENAME-opt) TYPENAME-opt go to state 125 using-declarator go to state 435

State 236

762 using-declarationUSING using-declarator-list SEMICOLON $default reduce using rule 762 (using-declaration)

State 237

137 class-nameIDENTIFIER [SCOPE] 246 enum-nameIDENTIFIER [SCOPE] 444 namespace-aliasIDENTIFIER [SCOPE] 450 namespace-nameIDENTIFIER [SCOPE] 695 template-nameIDENTIFIER [LESS] 730 typedef-nameIDENTIFIER [SCOPE] 754 unqualified-idIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] SCOPE reduce using rule 137 (class-name) SCOPE [reduce using rule 246 (enum-name)] SCOPE [reduce using rule 444 (namespace-alias)] SCOPE [reduce using rule 450 (namespace-name)] SCOPE [reduce using rule 730 (typedef-name)] SCOPE [reduce using rule 754 (unqualified-id)] LESS reduce using rule 695 (template-name) LESS [reduce using rule 754 (unqualified-id)] $default reduce using rule 754 (unqualified-id)

State 238

477 noexcept-expressionNOEXCEPT OPEN_PAREN expression CLOSE_PAREN OPEN_PAREN shift, and go to state 436

State 239

751 unary-operatorNOT $default reduce using rule 751 (unary-operator)

State 240

20 SCOPE-optSCOPE [DELETE, NEW] 452 nested-name-specifierSCOPE [IDENTIFIER, TEMPLATE, OPERATOR, COMPL] DELETE reduce using rule 20 (SCOPE-opt) NEW reduce using rule 20 (SCOPE-opt) $default reduce using rule 452 (nested-name-specifier)

State 241

577 primary-expressionTHIS $default reduce using rule 577 (primary-expression)

State 242

749 unary-operatorPLUS $default reduce using rule 749 (unary-operator)

State 243

750 unary-operatorMINUS $default reduce using rule 750 (unary-operator)

State 244

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 285 | OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list ELLIPSIS shift, and go to state 437 IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 438 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 439 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 440 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 245

748 unary-operatorAND $default reduce using rule 748 (unary-operator)

State 246

5 ELLIPSIS-opt %empty [IDENTIFIER] 6 | ELLIPSIS 123 capture simple-capture 124 | init-capture 125 capture-default AND 126 | EQ 127 capture-list capture 128 | capture-list COMMA capture 346 init-capture ELLIPSIS-opt IDENTIFIER initializer 347 | AND ELLIPSIS-opt IDENTIFIER initializer 379 lambda-capture capture-default 380 | capture-list 381 | capture-default COMMA capture-list 382 lambda-capture-opt %empty [CLOSE_SQUARE] 383 | lambda-capture 388 lambda-introducerOPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 635 simple-capture IDENTIFIER ELLIPSIS-opt 636 | AND IDENTIFIER ELLIPSIS-opt 637 | THIS 638 | MULT THIS ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 441 THIS shift, and go to state 442 EQ shift, and go to state 443 AND shift, and go to state 444 MULT shift, and go to state 445 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 382 (lambda-capture-opt) ELLIPSIS-opt go to state 446 capture go to state 447 capture-default go to state 448 capture-list go to state 449 init-capture go to state 450 lambda-capture go to state 451 lambda-capture-opt go to state 452 simple-capture go to state 453

State 247

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 90 | CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 454 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 248

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-idOPERATOR conversion-type-id 170 conversion-type-id type-specifier-seq conversion-declarator-opt 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 392 literal-operator-idOPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 497 operator-function-idOPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 499 overloadable-operator NEW 500 | DELETE 501 | NEW OPEN_SQUARE CLOSE_SQUARE 502 | DELETE OPEN_SQUARE CLOSE_SQUARE 503 | CO_AWAIT 504 | OPEN_PAREN CLOSE_PAREN 505 | OPEN_SQUARE CLOSE_SQUARE 506 | DEREF 507 | DEREF_STAR 508 | COMPL 509 | NOT 510 | PLUS 511 | MINUS 512 | MULT 513 | DIV 514 | MOD 515 | XOR 516 | AND 517 | OR 518 | EQ 519 | PLUS_EQ 520 | MINUS_EQ 521 | MULT_EQ 522 | DIV_EQ 523 | MOD_EQ 524 | XOR_EQ 525 | AND_EQ 526 | OR_EQ 527 | EQ_EQ 528 | NOT_EQ 529 | LESS 530 | GREATER 531 | LESS_EQ 532 | GREATER_EQ 533 | SPACESHIP 534 | AND_AND 535 | OR_OR 536 | LSHIFT 537 | RSHIFT 538 | LSHIFT_EQ 539 | RSHIFT_EQ 540 | PLUS_PLUS 541 | MINUS_MINUS 542 | COMMA 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 681 string-literal STRING_LITERAL 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 761 user-defined-string-literal string-literal ud-suffix COMMA shift, and go to state 455 IDENTIFIER shift, and go to state 4 NOT shift, and go to state 456 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 PLUS shift, and go to state 457 MINUS shift, and go to state 458 EQ shift, and go to state 459 OPEN_PAREN shift, and go to state 460 AND shift, and go to state 461 MULT_EQ shift, and go to state 462 DIV_EQ shift, and go to state 463 MOD_EQ shift, and go to state 464 PLUS_EQ shift, and go to state 465 MINUS_EQ shift, and go to state 466 RSHIFT_EQ shift, and go to state 467 LSHIFT_EQ shift, and go to state 468 AND_EQ shift, and go to state 469 XOR_EQ shift, and go to state 470 OR_EQ shift, and go to state 471 OPEN_SQUARE shift, and go to state 472 CO_AWAIT shift, and go to state 473 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 SPACESHIP shift, and go to state 474 AND_AND shift, and go to state 475 OR_OR shift, and go to state 476 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 DEREF shift, and go to state 477 DELETE shift, and go to state 478 ENUM shift, and go to state 124 EQ_EQ shift, and go to state 479 NOT_EQ shift, and go to state 480 XOR shift, and go to state 481 LESS shift, and go to state 482 GREATER shift, and go to state 483 MULT shift, and go to state 484 DIV shift, and go to state 485 MOD shift, and go to state 486 OR shift, and go to state 487 LSHIFT shift, and go to state 488 RSHIFT shift, and go to state 489 LESS_EQ shift, and go to state 490 GREATER_EQ shift, and go to state 491 DEREF_STAR shift, and go to state 492 NEW shift, and go to state 493 COMPL shift, and go to state 494 PLUS_PLUS shift, and go to state 495 MINUS_MINUS shift, and go to state 496 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STRING_LITERAL shift, and go to state 117 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 conversion-type-id go to state 497 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 overloadable-operator go to state 498 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 string-literal go to state 499 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 500 typedef-name go to state 108 typename-specifier go to state 109 user-defined-string-literal go to state 501

State 249

747 unary-operatorMULT $default reduce using rule 747 (unary-operator)

State 250

615 requirement-parameter-list OPEN_PAREN parameter-declaration-clause CLOSE_PAREN 616 requirement-parameter-list-opt %empty [OPEN_BRACE] 617 | requirement-parameter-list 623 requires-expressionREQUIRES requirement-parameter-list-opt requirement-body OPEN_PAREN shift, and go to state 502 $default reduce using rule 616 (requirement-parameter-list-opt) requirement-parameter-list go to state 503 requirement-parameter-list-opt go to state 504

State 251

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 752 unary-operatorCOMPL [IDENTIFIER, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, PLUS, MINUS, OPEN_PAREN, AND, OPEN_SQUARE, CO_AWAIT, OPERATOR, DECLTYPE, DELETE, MULT, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, SIZEOF, ALIGNOF] 758 unqualified-idCOMPL type-name 759 | COMPL decltype-specifier IDENTIFIER shift, and go to state 505 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 752 (unary-operator)] DECLTYPE [reduce using rule 752 (unary-operator)] $default reduce using rule 752 (unary-operator) class-name go to state 55 decltype-specifier go to state 506 enum-name go to state 71 simple-template-id go to state 96 template-name go to state 102 type-name go to state 507 typedef-name go to state 108

State 252

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 508 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 253

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 509 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 254

570 postfix-expressionDYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN LESS shift, and go to state 510

State 255

571 postfix-expressionSTATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN LESS shift, and go to state 511

State 256

572 postfix-expressionREINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN LESS shift, and go to state 512

State 257

573 postfix-expressionCONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN LESS shift, and go to state 513

State 258

574 postfix-expressionTYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN OPEN_PAREN shift, and go to state 514

State 259

576 primary-expressionLITERAL $default reduce using rule 576 (primary-expression)

State 260

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 54 assignment-expression-opt %empty [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, GREATER] 55 | assignment-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 700 | THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] DELETE reduce using rule 19 (SCOPE-opt) NEW reduce using rule 19 (SCOPE-opt) AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 54 (assignment-expression-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 515 assignment-expression-opt go to state 516 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 261

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id ELLIPSIS shift, and go to state 517 IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 518 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 519 unary-operator go to state 303 unqualified-id go to state 304

State 262

743 unary-expressionALIGNOF OPEN_PAREN type-id CLOSE_PAREN OPEN_PAREN shift, and go to state 520

State 263

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 774 | CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 521 await-expression go to state 268 braced-init-list go to state 522 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 264

222 delete-expressionSCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 466 new-expressionSCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt DELETE shift, and go to state 523 NEW shift, and go to state 524

State 265

42 additive-expressionadditive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 632 shift-expressionadditive-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] PLUS shift, and go to state 525 MINUS shift, and go to state 526 $default reduce using rule 632 (shift-expression)

State 266

48 and-expressionand-expression AND equality-expression 262 exclusive-or-expressionand-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, XOR, GREATER, OR] AND shift, and go to state 527 $default reduce using rule 262 (exclusive-or-expression)

State 267

277 expressionassignment-expression $default reduce using rule 277 (expression)

State 268

739 unary-expressionawait-expression $default reduce using rule 739 (unary-expression)

State 269

556 pm-expressioncast-expression $default reduce using rule 556 (pm-expression)

State 270

147 compare-expressioncompare-expression SPACESHIP shift-expression 605 relational-expressioncompare-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LESS_EQ, GREATER_EQ] SPACESHIP shift, and go to state 528 $default reduce using rule 605 (relational-expression)

State 271

50 assignment-expressionconditional-expression $default reduce using rule 50 (assignment-expression)

State 272

756 unqualified-idconversion-function-id $default reduce using rule 756 (unqualified-id)

State 273

746 unary-expressiondelete-expression $default reduce using rule 746 (unary-expression)

State 274

47 and-expressionequality-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, XOR, GREATER, OR] 257 equality-expressionequality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression EQ_EQ shift, and go to state 529 NOT_EQ shift, and go to state 530 $default reduce using rule 47 (and-expression)

State 275

263 exclusive-or-expressionexclusive-or-expression XOR and-expression 344 inclusive-or-expressionexclusive-or-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, GREATER, OR] XOR shift, and go to state 531 $default reduce using rule 344 (inclusive-or-expression)

State 276

214 decltype-specifierDECLTYPE OPEN_PAREN expression CLOSE_PAREN 278 expressionexpression COMMA assignment-expression COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 533

State 277

581 primary-expressionfold-expression $default reduce using rule 581 (primary-expression)

State 278

579 primary-expressionid-expression $default reduce using rule 579 (primary-expression)

State 279

345 inclusive-or-expressioninclusive-or-expression OR exclusive-or-expression 394 logical-and-expressioninclusive-or-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, GREATER] OR shift, and go to state 534 $default reduce using rule 394 (logical-and-expression)

State 280

580 primary-expressionlambda-expression $default reduce using rule 580 (primary-expression)

State 281

131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 191 decl-specifier-seq-opt %empty [NOEXCEPT, ALIGNAS, OPEN_SQUARE, OPEN_BRACE, DEREF] 192 | decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 384 lambda-declarator lambda-specifiers 385 | OPEN_PAREN parameter-declaration-clause CLOSE_PAREN lambda-specifiers requires-clause-opt 386 lambda-expressionlambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 389 lambda-specifiers decl-specifier-seq-opt noexcept-specifier-opt attribute-specifier-seq-opt trailing-return-type-opt 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 OPEN_PAREN shift, and go to state 535 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 LESS shift, and go to state 536 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 191 (decl-specifier-seq-opt) class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 537 decl-specifier-seq-opt go to state 538 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 lambda-declarator go to state 539 lambda-specifiers go to state 540 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 282

694 template-idliteral-operator-id LESS template-argument-list-opt GREATER 757 unqualified-idliteral-operator-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] LESS shift, and go to state 541 LESS [reduce using rule 757 (unqualified-id)] $default reduce using rule 757 (unqualified-id)

State 283

395 logical-and-expressionlogical-and-expression AND_AND inclusive-or-expression 396 logical-or-expressionlogical-and-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, OR_OR, GREATER] AND_AND shift, and go to state 542 $default reduce using rule 396 (logical-or-expression)

State 284

53 assignment-expressionlogical-or-expression assignment-operator initializer-clause 56 assignment-operator EQ 57 | MULT_EQ 58 | DIV_EQ 59 | MOD_EQ 60 | PLUS_EQ 61 | MINUS_EQ 62 | RSHIFT_EQ 63 | LSHIFT_EQ 64 | AND_EQ 65 | XOR_EQ 66 | OR_EQ 156 conditional-expressionlogical-or-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, GREATER] 157 | logical-or-expression QUERY expression COLON assignment-expression 397 logical-or-expressionlogical-or-expression OR_OR logical-and-expression EQ shift, and go to state 543 MULT_EQ shift, and go to state 544 DIV_EQ shift, and go to state 545 MOD_EQ shift, and go to state 546 PLUS_EQ shift, and go to state 547 MINUS_EQ shift, and go to state 548 RSHIFT_EQ shift, and go to state 549 LSHIFT_EQ shift, and go to state 550 AND_EQ shift, and go to state 551 XOR_EQ shift, and go to state 552 OR_EQ shift, and go to state 553 QUERY shift, and go to state 554 OR_OR shift, and go to state 555 EQ [reduce using rule 156 (conditional-expression)] $default reduce using rule 156 (conditional-expression) assignment-operator go to state 556

State 285

41 additive-expressionmultiplicative-expression [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] 440 multiplicative-expressionmultiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression MULT shift, and go to state 557 DIV shift, and go to state 558 MOD shift, and go to state 559 $default reduce using rule 41 (additive-expression)

State 286

21 TEMPLATE-opt %empty [IDENTIFIER, OPERATOR, COMPL] 22 | TEMPLATE 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 459 nested-name-specifier-optnested-name-specifier [IDENTIFIER] 599 qualified-idnested-name-specifier TEMPLATE-opt unqualified-id 645 simple-type-specifiernested-name-specifier TEMPLATE simple-template-id IDENTIFIER shift, and go to state 197 TEMPLATE shift, and go to state 198 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] IDENTIFIER [reduce using rule 459 (nested-name-specifier-opt)] $default reduce using rule 21 (TEMPLATE-opt) TEMPLATE-opt go to state 560

State 287

745 unary-expressionnew-expression $default reduce using rule 745 (unary-expression)

State 288

744 unary-expressionnoexcept-expression $default reduce using rule 744 (unary-expression)

State 289

693 template-idoperator-function-id LESS template-argument-list-opt GREATER 755 unqualified-idoperator-function-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] LESS shift, and go to state 561 LESS [reduce using rule 755 (unqualified-id)] $default reduce using rule 755 (unqualified-id)

State 290

439 multiplicative-expressionpm-expression [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] 557 pm-expressionpm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression DOT_STAR shift, and go to state 562 DEREF_STAR shift, and go to state 563 $default reduce using rule 439 (multiplicative-expression)

State 291

560 postfix-expressionpostfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 735 unary-expressionpostfix-expression [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] OPEN_PAREN shift, and go to state 564 OPEN_SQUARE shift, and go to state 565 DEREF shift, and go to state 566 DOT shift, and go to state 567 PLUS_PLUS shift, and go to state 568 MINUS_MINUS shift, and go to state 569 $default reduce using rule 735 (unary-expression)

State 292

559 postfix-expressionprimary-expression $default reduce using rule 559 (postfix-expression)

State 293

341 id-expressionqualified-id $default reduce using rule 341 (id-expression)

State 294

256 equality-expressionrelational-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, GREATER, OR] 606 relational-expressionrelational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression LESS shift, and go to state 570 GREATER shift, and go to state 571 LESS_EQ shift, and go to state 572 GREATER_EQ shift, and go to state 573 GREATER [reduce using rule 256 (equality-expression)] $default reduce using rule 256 (equality-expression)

State 295

582 primary-expressionrequires-expression $default reduce using rule 582 (primary-expression)

State 296

146 compare-expressionshift-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LESS_EQ, GREATER_EQ] 633 shift-expressionshift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression LSHIFT shift, and go to state 574 RSHIFT shift, and go to state 575 $default reduce using rule 146 (compare-expression)

State 297

138 class-namesimple-template-id [SCOPE] 692 template-idsimple-template-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 731 typedef-namesimple-template-id [SCOPE] SCOPE reduce using rule 138 (class-name) SCOPE [reduce using rule 692 (template-id)] SCOPE [reduce using rule 731 (typedef-name)] $default reduce using rule 692 (template-id)

State 298

120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 562 postfix-expressionsimple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list OPEN_PAREN shift, and go to state 576 OPEN_BRACE shift, and go to state 378 braced-init-list go to state 577

State 299

760 unqualified-idtemplate-id $default reduce using rule 760 (unqualified-id)

State 300

52 assignment-expressionthrow-expression $default reduce using rule 52 (assignment-expression)

State 301

120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 563 postfix-expressiontypename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 565 | typename-specifier braced-init-list OPEN_PAREN shift, and go to state 578 OPEN_BRACE shift, and go to state 378 braced-init-list go to state 579

State 302

129 cast-expressionunary-expression $default reduce using rule 129 (cast-expression)

State 303

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 580 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 304

340 id-expressionunqualified-id $default reduce using rule 340 (id-expression)

State 305

51 assignment-expressionyield-expression $default reduce using rule 51 (assignment-expression)

State 306

228 elaborated-enum-specifierENUM nested-name-specifier-opt IDENTIFIER $default reduce using rule 228 (elaborated-enum-specifier)

State 307

158 constant-expressionconditional-expression $default reduce using rule 158 (constant-expression)

State 308

266 explicit-specifierEXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN CLOSE_PAREN shift, and go to state 581

State 309

156 conditional-expressionlogical-or-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, GREATER] 157 | logical-or-expression QUERY expression COLON assignment-expression 397 logical-or-expressionlogical-or-expression OR_OR logical-and-expression QUERY shift, and go to state 554 OR_OR shift, and go to state 555 $default reduce using rule 156 (conditional-expression)

State 310

332 global-module-fragmentMODULE SEMICOLON declaration-seq-opt $default reduce using rule 332 (global-module-fragment)

State 311

432 module-name-qualifierIDENTIFIER DOT $default reduce using rule 432 (module-name-qualifier)

State 312

436 module-partitionCOLON module-name-qualifier-opt IDENTIFIER IDENTIFIER shift, and go to state 582

State 313

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 430 module-import-declarationIMPORT header-name attribute-specifier-seq-opt SEMICOLON SEMICOLON shift, and go to state 583 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 alignment-specifier go to state 165 attribute-specifier go to state 166

State 314

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 428 module-import-declarationIMPORT module-name attribute-specifier-seq-opt SEMICOLON SEMICOLON shift, and go to state 584 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 alignment-specifier go to state 165 attribute-specifier go to state 166

State 315

433 module-name-qualifiermodule-name-qualifier IDENTIFIER DOT DOT shift, and go to state 585

State 316

431 module-namemodule-name-qualifier-opt IDENTIFIER $default reduce using rule 431 (module-name)

State 317

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 429 module-import-declarationIMPORT module-partition attribute-specifier-seq-opt SEMICOLON SEMICOLON shift, and go to state 586 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 alignment-specifier go to state 165 attribute-specifier go to state 166

State 318

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 445 namespace-alias-definitionNAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 600 qualified-namespace-specifier nested-name-specifier-opt namespace-name 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 587 qualified-namespace-specifier go to state 588 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 319

13 INLINE-opt %empty [IDENTIFIER] 14 | INLINE 235 enclosing-namespace-specifierenclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER 460 nested-namespace-definitionNAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE INLINE shift, and go to state 589 $default reduce using rule 13 (INLINE-opt) INLINE-opt go to state 590

State 320

675 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON COMMA shift, and go to state 591 CLOSE_PAREN shift, and go to state 592

State 321

264 explicit-instantiationEXTERN-opt TEMPLATE declaration $default reduce using rule 264 (explicit-instantiation)

State 322

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 443 named-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 753 unnamed-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE IDENTIFIER shift, and go to state 593 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_BRACE shift, and go to state 594 alignment-specifier go to state 165 attribute-specifier go to state 166

State 323

351 init-declarator-listinit-declarator-list COMMA init-declarator 640 simple-declarationattribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON COMMA shift, and go to state 385 SEMICOLON shift, and go to state 595

State 324

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 239 enum-headenum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 240 enum-head-name nested-name-specifier-opt IDENTIFIER 241 enum-head-name-opt %empty [COLON, OPEN_BRACE] 242 | enum-head-name 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] $default reduce using rule 241 (enum-head-name-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 class-name go to state 55 decltype-specifier go to state 120 enum-head-name go to state 596 enum-head-name-opt go to state 393 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 394 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 325

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 766 using-directiveattribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 597 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 326

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 45 alignment-specifierALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 598 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 599 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 327

491 noptr-declaratornoptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 553 parameters-and-qualifiers OPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt 590 ptr-declaratornoptr-declarator [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] OPEN_PAREN shift, and go to state 345 OPEN_SQUARE shift, and go to state 346 OPEN_PAREN [reduce using rule 590 (ptr-declarator)] $default reduce using rule 590 (ptr-declarator) parameters-and-qualifiers go to state 600

State 328

493 noptr-declaratorOPEN_PAREN ptr-declarator CLOSE_PAREN CLOSE_PAREN shift, and go to state 601

State 329

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 593 ptr-operatorAND attribute-specifier-seq-opt [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 ALIGNAS [reduce using rule 593 (ptr-operator)] OPEN_SQUARE [reduce using rule 593 (ptr-operator)] $default reduce using rule 593 (ptr-operator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 330

49 asm-declarationattribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 681 string-literal STRING_LITERAL STRING_LITERAL shift, and go to state 117 string-literal go to state 602

State 331

80 attribute-specifierOPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 87 attribute-using-prefix USING attribute-namespace COLON 88 attribute-using-prefix-opt %empty [COMMA, IDENTIFIER, CLOSE_SQUARE] 89 | attribute-using-prefix USING shift, and go to state 603 $default reduce using rule 88 (attribute-using-prefix-opt) attribute-using-prefix go to state 604 attribute-using-prefix-opt go to state 605

State 332

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 594 ptr-operatorAND_AND attribute-specifier-seq-opt [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 ALIGNAS [reduce using rule 594 (ptr-operator)] OPEN_SQUARE [reduce using rule 594 (ptr-operator)] $default reduce using rule 594 (ptr-operator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 333

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 175 cv-qualifier CONST 176 | VOLATILE 177 cv-qualifier-seq cv-qualifier cv-qualifier-seq-opt 178 cv-qualifier-seq-opt %empty [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 179 | cv-qualifier-seq 592 ptr-operatorMULT attribute-specifier-seq-opt cv-qualifier-seq-opt ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 ALIGNAS [reduce using rule 178 (cv-qualifier-seq-opt)] OPEN_SQUARE [reduce using rule 178 (cv-qualifier-seq-opt)] CONST [reduce using rule 178 (cv-qualifier-seq-opt)] VOLATILE [reduce using rule 178 (cv-qualifier-seq-opt)] $default reduce using rule 178 (cv-qualifier-seq-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 cv-qualifier go to state 606 cv-qualifier-seq go to state 607 cv-qualifier-seq-opt go to state 608

State 334

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 758 unqualified-idCOMPL type-name 759 | COMPL decltype-specifier IDENTIFIER shift, and go to state 505 DECLTYPE shift, and go to state 21 class-name go to state 55 decltype-specifier go to state 506 enum-name go to state 71 simple-template-id go to state 96 template-name go to state 102 type-name go to state 507 typedef-name go to state 108

State 335

213 declarator-idELLIPSIS-opt id-expression $default reduce using rule 213 (declarator-id)

State 336

21 TEMPLATE-opt %empty [IDENTIFIER, OPERATOR, COMPL] 22 | TEMPLATE 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 599 qualified-idnested-name-specifier TEMPLATE-opt unqualified-id IDENTIFIER shift, and go to state 197 TEMPLATE shift, and go to state 229 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] $default reduce using rule 21 (TEMPLATE-opt) TEMPLATE-opt go to state 560

State 337

601 ref-qualifierAND $default reduce using rule 601 (ref-qualifier)

State 338

602 ref-qualifierAND_AND $default reduce using rule 602 (ref-qualifier)

State 339

604 ref-qualifier-optref-qualifier $default reduce using rule 604 (ref-qualifier-opt)

State 340

641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON OPEN_SQUARE shift, and go to state 609

State 341

327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 620 requires-clause REQUIRES constraint-logical-or-expression 768 virt-specifier OVERRIDE 769 | FINAL 770 virt-specifier-seq virt-specifier 771 | virt-specifier-seq virt-specifier 772 virt-specifier-seq-opt %empty [EQ, COLON, OPEN_BRACE, TRY] 773 | virt-specifier-seq FINAL shift, and go to state 610 REQUIRES shift, and go to state 379 OVERRIDE shift, and go to state 611 $default reduce using rule 772 (virt-specifier-seq-opt) requires-clause go to state 612 virt-specifier go to state 613 virt-specifier-seq go to state 614 virt-specifier-seq-opt go to state 615

State 342

476 nodeclspec-function-declarationattribute-specifier-seq-opt declarator SEMICOLON $default reduce using rule 476 (nodeclspec-function-declaration)

State 343

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 490 noptr-declaratordeclarator-id attribute-specifier-seq-opt [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_SQUARE [reduce using rule 490 (noptr-declarator)] $default reduce using rule 490 (noptr-declarator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 344

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 595 ptr-operatornested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 616

State 345

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 547 parameter-declaration-clause parameter-declaration-list-opt ELLIPSIS-opt 548 | parameter-declaration-list COMMA ELLIPSIS 549 parameter-declaration-list parameter-declaration 550 | parameter-declaration-list COMMA parameter-declaration 551 parameter-declaration-list-opt %empty [ELLIPSIS, CLOSE_PAREN] 552 | parameter-declaration-list 553 parameters-and-qualifiersOPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt ELLIPSIS reduce using rule 551 (parameter-declaration-list-opt) CLOSE_PAREN reduce using rule 551 (parameter-declaration-list-opt) $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 parameter-declaration go to state 617 parameter-declaration-clause go to state 618 parameter-declaration-list go to state 619 parameter-declaration-list-opt go to state 620

State 346

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 159 constant-expression-opt %empty [CLOSE_SQUARE] 160 | constant-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 492 noptr-declaratornoptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_SQUARE reduce using rule 159 (constant-expression-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 621 constant-expression-opt go to state 622 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 347

212 declaratornoptr-declarator parameters-and-qualifiers trailing-return-type 491 noptr-declaratornoptr-declarator parameters-and-qualifiers [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] 701 trailing-return-type DEREF type-id DEREF shift, and go to state 623 $default reduce using rule 491 (noptr-declarator) trailing-return-type go to state 624

State 348

591 ptr-declaratorptr-operator ptr-declarator $default reduce using rule 591 (ptr-declarator)

State 349

36 access-specifierPRIVATE $default reduce using rule 36 (access-specifier)

State 350

37 access-specifierPROTECTED $default reduce using rule 37 (access-specifier)

State 351

38 access-specifierPUBLIC $default reduce using rule 38 (access-specifier)

State 352

243 enum-keyENUM [IDENTIFIER, SCOPE, ALIGNAS, OPEN_SQUARE, DECLTYPE] 244 | ENUM CLASS 245 | ENUM STRUCT CLASS shift, and go to state 130 STRUCT shift, and go to state 131 $default reduce using rule 243 (enum-key)

State 353

424 member-specificationaccess-specifier COLON member-specification-opt COLON shift, and go to state 625

State 354

412 member-declarationalias-declaration $default reduce using rule 412 (member-declaration)

State 355

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 191 decl-specifier-seq-opt %empty [ELLIPSIS, IDENTIFIER, SCOPE, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, COLON, AND_AND, OPERATOR, DECLTYPE, MULT, COMPL] 192 | decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 404 member-declarationattribute-specifier-seq-opt decl-specifier-seq-opt member-declarator-list-opt SEMICOLON 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 191 (decl-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 191 (decl-specifier-seq-opt)] ALIGNAS [reduce using rule 191 (decl-specifier-seq-opt)] OPEN_SQUARE [reduce using rule 191 (decl-specifier-seq-opt)] DECLTYPE [reduce using rule 191 (decl-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 191 (decl-specifier-seq-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 537 decl-specifier-seq-opt go to state 626 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 356

411 member-declarationdeduction-guide $default reduce using rule 411 (member-declaration)

State 357

414 member-declarationempty-declaration $default reduce using rule 414 (member-declaration)

State 358

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 627

State 359

410 member-declarationexplicit-specialization $default reduce using rule 410 (member-declaration)

State 360

269 explicit-specifier-optexplicit-specifier $default reduce using rule 269 (explicit-specifier-opt)

State 361

405 member-declarationfunction-definition $default reduce using rule 405 (member-declaration)

State 362

36 access-specifier PRIVATE 37 | PROTECTED 38 | PUBLIC 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, COLON, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 233 empty-declaration SEMICOLON 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 404 member-declaration attribute-specifier-seq-opt decl-specifier-seq-opt member-declarator-list-opt SEMICOLON 405 | function-definition 406 | using-declaration 407 | using-enum-declaration 408 | static_assert-declaration 409 | template-declaration 410 | explicit-specialization 411 | deduction-guide 412 | alias-declaration 413 | opaque-enum-declaration 414 | empty-declaration 423 member-specification member-declaration member-specification-opt 423 | member-declaration member-specification-opt 424 | access-specifier COLON member-specification-opt 425 member-specification-opt %empty [CLOSE_BRACE] 426 | member-specification 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 762 using-declaration USING using-declarator-list SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON TEMPLATE shift, and go to state 7 PRIVATE shift, and go to state 349 PROTECTED shift, and go to state 350 PUBLIC shift, and go to state 351 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 ENUM shift, and go to state 352 EXPLICIT shift, and go to state 23 STATIC_ASSERT shift, and go to state 41 IDENTIFIER reduce using rule 83 (attribute-specifier-seq-opt) IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] SEMICOLON [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 425 (member-specification-opt) ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) access-specifier go to state 353 alias-declaration go to state 354 attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 355 deduction-guide go to state 356 empty-declaration go to state 357 enum-key go to state 358 explicit-specialization go to state 359 explicit-specifier go to state 360 explicit-specifier-opt go to state 76 function-definition go to state 361 member-declaration go to state 362 member-specification go to state 363 member-specification-opt go to state 628 opaque-enum-declaration go to state 365 static_assert-declaration go to state 366 template-declaration go to state 367 template-head go to state 101 using-declaration go to state 368 using-enum-declaration go to state 369

State 363

426 member-specification-optmember-specification $default reduce using rule 426 (member-specification-opt)

State 364

142 class-specifierclass-head OPEN_BRACE member-specification-opt CLOSE_BRACE CLOSE_BRACE shift, and go to state 629

State 365

413 member-declarationopaque-enum-declaration $default reduce using rule 413 (member-declaration)

State 366

408 member-declarationstatic_assert-declaration $default reduce using rule 408 (member-declaration)

State 367

409 member-declarationtemplate-declaration $default reduce using rule 409 (member-declaration)

State 368

406 member-declarationusing-declaration $default reduce using rule 406 (member-declaration)

State 369

407 member-declarationusing-enum-declaration $default reduce using rule 407 (member-declaration)

State 370

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 99 base-clauseCOLON base-specifier-list 102 base-specifier attribute-specifier-seq-opt class-or-decltype 103 | attribute-specifier-seq-opt VIRTUAL access-specifier-opt class-or-decltype 104 | attribute-specifier-seq-opt access-specifier VIRTUAL-opt class-or-decltype 105 base-specifier-list base-specifier ELLIPSIS-opt 106 | base-specifier-list COMMA base-specifier ELLIPSIS-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 630 base-specifier go to state 631 base-specifier-list go to state 632

State 371

101 base-clause-optbase-clause $default reduce using rule 101 (base-clause-opt)

State 372

132 class-headclass-key attribute-specifier-seq-opt base-clause-opt $default reduce using rule 132 (class-head)

State 373

131 class-headclass-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 143 class-virt-specifier FINAL 144 class-virt-specifier-opt %empty [COLON, OPEN_BRACE] 145 | class-virt-specifier FINAL shift, and go to state 633 $default reduce using rule 144 (class-virt-specifier-opt) class-virt-specifier go to state 634 class-virt-specifier-opt go to state 635

State 374

133 class-head-namenested-name-specifier-opt class-name 137 class-name IDENTIFIER 138 | simple-template-id 229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER IDENTIFIER shift, and go to state 636 class-name go to state 637 simple-template-id go to state 638 template-name go to state 102

State 375

231 elaborated-type-specifierclass-key nested-name-specifier TEMPLATE-opt simple-template-id 457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER IDENTIFIER shift, and go to state 191 simple-template-id go to state 639 template-name go to state 102

State 376

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 116 brace-or-equal-initializerEQ initializer-clause 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 642 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 377

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 279 expression-list initializer-list 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 360 initializerOPEN_PAREN expression-list CLOSE_PAREN 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression-list go to state 643 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 645 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 378

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 120 | OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 224 designated-initializer-clause designator brace-or-equal-initializer 225 designated-initializer-list designated-initializer-clause 226 | designated-initializer-list COMMA designated-initializer-clause 227 designator DOT IDENTIFIER 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 CLOSE_BRACE shift, and go to state 646 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 DOT shift, and go to state 647 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 designated-initializer-clause go to state 648 designated-initializer-list go to state 649 designator go to state 650 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 651 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 379

137 class-name IDENTIFIER 138 | simple-template-id 162 constraint-logical-and-expression primary-expression 163 | constraint-logical-and-expression AND_AND primary-expression 164 constraint-logical-or-expression constraint-logical-and-expression 165 | constraint-logical-or-expression OR_OR constraint-logical-and-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 620 requires-clauseREQUIRES constraint-logical-or-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 SCOPE shift, and go to state 6 THIS shift, and go to state 241 OPEN_PAREN shift, and go to state 652 OPEN_SQUARE shift, and go to state 246 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 REQUIRES shift, and go to state 250 COMPL shift, and go to state 334 LITERAL shift, and go to state 259 class-name go to state 55 constraint-logical-and-expression go to state 653 constraint-logical-or-expression go to state 654 conversion-function-id go to state 272 decltype-specifier go to state 120 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 336 operator-function-id go to state 289 primary-expression go to state 655 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 template-id go to state 299 template-name go to state 102 type-name go to state 106 typedef-name go to state 108 unqualified-id go to state 304

State 380

359 initializerbrace-or-equal-initializer $default reduce using rule 359 (initializer)

State 381

117 brace-or-equal-initializerbraced-init-list $default reduce using rule 117 (brace-or-equal-initializer)

State 382

366 initializer-optinitializer $default reduce using rule 366 (initializer-opt)

State 383

348 init-declaratordeclarator initializer-opt $default reduce using rule 348 (init-declarator)

State 384

349 init-declaratordeclarator requires-clause $default reduce using rule 349 (init-declarator)

State 385

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 348 init-declarator declarator initializer-opt 349 | declarator requires-clause 351 init-declarator-listinit-declarator-list COMMA init-declarator 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator go to state 182 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 init-declarator go to state 656 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 172 ptr-declarator go to state 173 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 386

639 simple-declarationdecl-specifier-seq init-declarator-list-opt SEMICOLON $default reduce using rule 639 (simple-declaration)

State 387

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 249 enumeratorIDENTIFIER attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 657

State 388

250 enumerator-definitionenumerator [COMMA, CLOSE_BRACE] 251 | enumerator EQ constant-expression EQ shift, and go to state 658 $default reduce using rule 250 (enumerator-definition)

State 389

252 enumerator-listenumerator-definition $default reduce using rule 252 (enumerator-list)

State 390

248 enum-specifierenum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 253 enumerator-listenumerator-list COMMA enumerator-definition 255 enumerator-list-optenumerator-list [CLOSE_BRACE] COMMA shift, and go to state 659 $default reduce using rule 255 (enumerator-list-opt)

State 391

247 enum-specifierenum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE CLOSE_BRACE shift, and go to state 660

State 392

236 enum-base COLON type-specifier-seq 237 enum-base-opt %empty [SEMICOLON] 238 | enum-base 242 enum-head-name-optenum-head-name [COLON, OPEN_BRACE] 496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON COLON shift, and go to state 661 COLON [reduce using rule 242 (enum-head-name-opt)] OPEN_BRACE reduce using rule 242 (enum-head-name-opt) $default reduce using rule 237 (enum-base-opt) enum-base go to state 662 enum-base-opt go to state 663

State 393

236 enum-base COLON type-specifier-seq 237 enum-base-opt %empty [OPEN_BRACE] 238 | enum-base 239 enum-headenum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt COLON shift, and go to state 661 $default reduce using rule 237 (enum-base-opt) enum-base go to state 662 enum-base-opt go to state 664

State 394

240 enum-head-namenested-name-specifier-opt IDENTIFIER IDENTIFIER shift, and go to state 665

State 395

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 547 parameter-declaration-clause parameter-declaration-list-opt ELLIPSIS-opt 548 | parameter-declaration-list COMMA ELLIPSIS 549 parameter-declaration-list parameter-declaration 550 | parameter-declaration-list COMMA parameter-declaration 551 parameter-declaration-list-opt %empty [ELLIPSIS, CLOSE_PAREN] 552 | parameter-declaration-list ELLIPSIS reduce using rule 551 (parameter-declaration-list-opt) CLOSE_PAREN reduce using rule 551 (parameter-declaration-list-opt) $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 parameter-declaration go to state 617 parameter-declaration-clause go to state 666 parameter-declaration-list go to state 619 parameter-declaration-list-opt go to state 620

State 396

427 module-declarationEXPORT-opt MODULE module-name module-partition-opt attribute-specifier-seq-opt SEMICOLON 431 module-name module-name-qualifier-opt IDENTIFIER 432 module-name-qualifier IDENTIFIER DOT 433 | module-name-qualifier IDENTIFIER DOT 434 module-name-qualifier-opt %empty [IDENTIFIER] 435 | module-name-qualifier IDENTIFIER shift, and go to state 136 IDENTIFIER [reduce using rule 434 (module-name-qualifier-opt)] module-name go to state 667 module-name-qualifier go to state 141 module-name-qualifier-opt go to state 142

State 397

583 private-module-fragment MODULE COLON PRIVATE SEMICOLON declaration-seq-opt 584 private-module-fragment-opt %empty [$end] 585 | private-module-fragment 705 translation-unitglobal-module-fragment-opt module-declaration declaration-seq-opt private-module-fragment-opt MODULE shift, and go to state 668 $default reduce using rule 584 (private-module-fragment-opt) private-module-fragment go to state 669 private-module-fragment-opt go to state 670

State 398

456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE $default reduce using rule 456 (nested-name-specifier)

State 399

645 simple-type-specifiernested-name-specifier TEMPLATE simple-template-id $default reduce using rule 645 (simple-type-specifier)

State 400

457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE SCOPE shift, and go to state 671

State 401

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 682 template-argument constant-expression 683 | type-id 684 | id-expression 685 template-argument-list template-argument ELLIPSIS-opt 686 | template-argument-list COMMA template-argument ELLIPSIS-opt 687 template-argument-list-opt %empty [GREATER] 688 | template-argument-list 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] GREATER reduce using rule 687 (template-argument-list-opt) AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 405 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 406 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-argument go to state 408 template-argument-list go to state 409 template-argument-list-opt go to state 672 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 411 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 402

151 concept-nameIDENTIFIER $default reduce using rule 151 (concept-name)

State 403

150 concept-definitionCONCEPT concept-name EQ constraint-expression SEMICOLON EQ shift, and go to state 673

State 404

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [IDENTIFIER, SCOPE, ALIGNAS, OPEN_SQUARE, DECLTYPE] 84 | attribute-specifier-seq 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 674 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 178 simple-template-id go to state 179 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 405

682 template-argumentconstant-expression $default reduce using rule 682 (template-argument)

State 406

579 primary-expressionid-expression [COMMA, ELLIPSIS, PLUS, MINUS, OPEN_PAREN, AND, OPEN_SQUARE, SPACESHIP, QUERY, AND_AND, OR_OR, DEREF, DOT, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, PLUS_PLUS, MINUS_MINUS] 684 template-argumentid-expression [COMMA, ELLIPSIS, GREATER] COMMA reduce using rule 579 (primary-expression) COMMA [reduce using rule 684 (template-argument)] ELLIPSIS reduce using rule 579 (primary-expression) ELLIPSIS [reduce using rule 684 (template-argument)] GREATER reduce using rule 579 (primary-expression) GREATER [reduce using rule 684 (template-argument)] $default reduce using rule 579 (primary-expression)

State 407

120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 562 postfix-expressionsimple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 724 type-specifiersimple-type-specifier [COMMA, CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, GREATER, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] OPEN_PAREN shift, and go to state 576 OPEN_BRACE shift, and go to state 378 OPEN_PAREN [reduce using rule 724 (type-specifier)] $default reduce using rule 724 (type-specifier) braced-init-list go to state 577

State 408

5 ELLIPSIS-opt %empty [COMMA, GREATER] 6 | ELLIPSIS 685 template-argument-listtemplate-argument ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 675

State 409

686 template-argument-listtemplate-argument-list COMMA template-argument ELLIPSIS-opt 688 template-argument-list-opttemplate-argument-list [GREATER] COMMA shift, and go to state 676 $default reduce using rule 688 (template-argument-list-opt)

State 410

643 simple-template-idtemplate-name LESS template-argument-list-opt GREATER GREATER shift, and go to state 677

State 411

683 template-argumenttype-id $default reduce using rule 683 (template-argument)

State 412

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 84 | attribute-specifier-seq 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 728 | type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 678 class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 679 typedef-name go to state 108 typename-specifier go to state 109

State 413

29 abstract-declarator ptr-abstract-declarator 30 | noptr-abstract-declarator-opt parameters-and-qualifiers trailing-return-type 31 | abstract-pack-declarator 32 abstract-declarator-opt %empty [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] 33 | abstract-declarator 34 abstract-pack-declarator noptr-abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 487 noptr-abstract-pack-declarator noptr-abstract-pack-declarator parameters-and-qualifiers 488 | noptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 489 | ELLIPSIS 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 711 type-idtype-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 680 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 681 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 ELLIPSIS [reduce using rule 32 (abstract-declarator-opt)] OPEN_PAREN [reduce using rule 32 (abstract-declarator-opt)] OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] OPEN_SQUARE reduce using rule 485 (noptr-abstract-declarator-opt) $default reduce using rule 32 (abstract-declarator-opt) abstract-declarator go to state 682 abstract-declarator-opt go to state 683 abstract-pack-declarator go to state 684 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 686 noptr-abstract-pack-declarator go to state 687 ptr-abstract-declarator go to state 688 ptr-operator go to state 689 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 414

120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 563 postfix-expressiontypename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 565 | typename-specifier braced-init-list 726 type-specifiertypename-specifier [COMMA, CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, GREATER, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] OPEN_PAREN shift, and go to state 578 OPEN_BRACE shift, and go to state 378 OPEN_PAREN [reduce using rule 726 (type-specifier)] $default reduce using rule 726 (type-specifier) braced-init-list go to state 579

State 415

555 placeholder-type-specifiertype-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN AUTO shift, and go to state 690

State 416

271 export-declarationEXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE $default reduce using rule 271 (export-declaration)

State 417

390 linkage-specificationEXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE CLOSE_BRACE shift, and go to state 691

State 418

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 643 simple-template-id template-name LESS template-argument-list-opt GREATER 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 691 | TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 696 template-parameter type-parameter 697 | parameter-declaration 698 template-parameter-list template-parameter 699 | template-parameter-list COMMA template-parameter 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 712 type-name class-name 713 | enum-name 714 | typedef-name 715 type-parameter type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 716 | type-parameter-key IDENTIFIER-opt EQ type-id 717 | type-constraint ELLIPSIS-opt IDENTIFIER-opt 718 | type-constraint IDENTIFIER-opt EQ type-id 719 | template-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 720 | template-head type-parameter-key IDENTIFIER-opt EQ id-expression 721 type-parameter-key CLASS 722 | TYPENAME 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 215 TYPENAME shift, and go to state 216 CLASS shift, and go to state 217 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 220 parameter-declaration go to state 221 simple-template-id go to state 96 template-head go to state 222 template-name go to state 102 template-parameter go to state 223 template-parameter-list go to state 224 type-constraint go to state 225 type-name go to state 106 type-parameter go to state 226 type-parameter-key go to state 227 typedef-name go to state 108

State 419

265 explicit-specializationTEMPLATE LESS GREATER declaration $default reduce using rule 265 (explicit-specialization)

State 420

24 THIS-optTHIS $default reduce using rule 24 (THIS-opt)

State 421

131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 543 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 692 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 422

5 ELLIPSIS-opt %empty [COMMA, IDENTIFIER, GREATER] 6 | ELLIPSIS 11 IDENTIFIER-opt %empty [EQ] 12 | IDENTIFIER 719 type-parametertemplate-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 720 | template-head type-parameter-key IDENTIFIER-opt EQ id-expression ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 425 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] EQ reduce using rule 11 (IDENTIFIER-opt) $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 693 IDENTIFIER-opt go to state 694

State 423

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 643 simple-template-id template-name LESS template-argument-list-opt GREATER 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 696 template-parameter type-parameter 697 | parameter-declaration 699 template-parameter-listtemplate-parameter-list COMMA template-parameter 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 712 type-name class-name 713 | enum-name 714 | typedef-name 715 type-parameter type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 716 | type-parameter-key IDENTIFIER-opt EQ type-id 717 | type-constraint ELLIPSIS-opt IDENTIFIER-opt 718 | type-constraint IDENTIFIER-opt EQ type-id 719 | template-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 720 | template-head type-parameter-key IDENTIFIER-opt EQ id-expression 721 type-parameter-key CLASS 722 | TYPENAME 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 215 TYPENAME shift, and go to state 216 CLASS shift, and go to state 217 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 220 parameter-declaration go to state 221 simple-template-id go to state 96 template-head go to state 222 template-name go to state 102 template-parameter go to state 695 type-constraint go to state 225 type-name go to state 106 type-parameter go to state 226 type-parameter-key go to state 227 typedef-name go to state 108

State 424

620 requires-clause REQUIRES constraint-logical-or-expression 621 requires-clause-opt %empty [CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, CONCEPT, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, IMPORT, NAMESPACE, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE] 622 | requires-clause 691 template-headTEMPLATE LESS template-parameter-list GREATER requires-clause-opt REQUIRES shift, and go to state 379 $default reduce using rule 621 (requires-clause-opt) requires-clause go to state 696 requires-clause-opt go to state 697

State 425

12 IDENTIFIER-optIDENTIFIER $default reduce using rule 12 (IDENTIFIER-opt)

State 426

11 IDENTIFIER-opt %empty [COMMA, GREATER] 12 | IDENTIFIER 717 type-parametertype-constraint ELLIPSIS-opt IDENTIFIER-opt IDENTIFIER shift, and go to state 425 $default reduce using rule 11 (IDENTIFIER-opt) IDENTIFIER-opt go to state 698

State 427

718 type-parametertype-constraint IDENTIFIER-opt EQ type-id EQ shift, and go to state 699

State 428

11 IDENTIFIER-opt %empty [COMMA, GREATER] 12 | IDENTIFIER 715 type-parametertype-parameter-key ELLIPSIS-opt IDENTIFIER-opt IDENTIFIER shift, and go to state 425 $default reduce using rule 11 (IDENTIFIER-opt) IDENTIFIER-opt go to state 700

State 429

716 type-parametertype-parameter-key IDENTIFIER-opt EQ type-id EQ shift, and go to state 701

State 430

457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE 733 typename-specifierTYPENAME nested-name-specifier TEMPLATE-opt simple-template-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] SCOPE shift, and go to state 671 SCOPE [reduce using rule 733 (typename-specifier)] $default reduce using rule 733 (typename-specifier)

State 431

44 alias-declarationUSING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 216 defining-type-id defining-type-specifier-seq abstract-declarator-opt 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 220 defining-type-specifier-seq defining-type-specifier attribute-specifier-seq-opt 221 | defining-type-specifier defining-type-specifier-seq 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decltype-specifier go to state 63 defining-type-id go to state 702 defining-type-specifier go to state 703 defining-type-specifier-seq go to state 704 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 432

456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 695 template-nameIDENTIFIER [LESS] 754 unqualified-idIDENTIFIER [COMMA, ELLIPSIS, SEMICOLON] SCOPE shift, and go to state 398 LESS reduce using rule 695 (template-name) $default reduce using rule 754 (unqualified-id)

State 433

692 template-idsimple-template-id $default reduce using rule 692 (template-id)

State 434

763 using-declaratorTYPENAME-opt nested-name-specifier unqualified-id $default reduce using rule 763 (using-declarator)

State 435

5 ELLIPSIS-opt %empty [COMMA, SEMICOLON] 6 | ELLIPSIS 765 using-declarator-listusing-declarator-list COMMA using-declarator ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 705

State 436

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 477 | NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 706 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 437

286 fold-expressionOPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 288 fold-operator PLUS 289 | MINUS 290 | MULT 291 | DIV 292 | MOD 293 | XOR 294 | AND 295 | OR 296 | LSHIFT 297 | RSHIFT 298 | PLUS_EQ 299 | MINUS_EQ 300 | MULT_EQ 301 | DIV_EQ 302 | MOD_EQ 303 | XOR_EQ 304 | AND_EQ 305 | OR_EQ 306 | LSHIFT_EQ 307 | RSHIFT_EQ 308 | EQ 309 | EQ_EQ 310 | NOT_EQ 311 | LESS 312 | GREATER 313 | LESS_EQ 314 | GREATER_EQ 315 | AND_AND 316 | OR_OR 317 | COMMA 318 | DOT_STAR 319 | DEREF_STAR COMMA shift, and go to state 707 PLUS shift, and go to state 708 MINUS shift, and go to state 709 EQ shift, and go to state 710 AND shift, and go to state 711 MULT_EQ shift, and go to state 712 DIV_EQ shift, and go to state 713 MOD_EQ shift, and go to state 714 PLUS_EQ shift, and go to state 715 MINUS_EQ shift, and go to state 716 RSHIFT_EQ shift, and go to state 717 LSHIFT_EQ shift, and go to state 718 AND_EQ shift, and go to state 719 XOR_EQ shift, and go to state 720 OR_EQ shift, and go to state 721 AND_AND shift, and go to state 722 OR_OR shift, and go to state 723 EQ_EQ shift, and go to state 724 NOT_EQ shift, and go to state 725 XOR shift, and go to state 726 LESS shift, and go to state 727 GREATER shift, and go to state 728 MULT shift, and go to state 729 DIV shift, and go to state 730 MOD shift, and go to state 731 OR shift, and go to state 732 LSHIFT shift, and go to state 733 RSHIFT shift, and go to state 734 LESS_EQ shift, and go to state 735 GREATER_EQ shift, and go to state 736 DOT_STAR shift, and go to state 737 DEREF_STAR shift, and go to state 738 fold-operator go to state 739

State 438

285 fold-expressionOPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 288 fold-operator PLUS 289 | MINUS 290 | MULT 291 | DIV 292 | MOD 293 | XOR 294 | AND 295 | OR 296 | LSHIFT 297 | RSHIFT 298 | PLUS_EQ 299 | MINUS_EQ 300 | MULT_EQ 301 | DIV_EQ 302 | MOD_EQ 303 | XOR_EQ 304 | AND_EQ 305 | OR_EQ 306 | LSHIFT_EQ 307 | RSHIFT_EQ 308 | EQ 309 | EQ_EQ 310 | NOT_EQ 311 | LESS 312 | GREATER 313 | LESS_EQ 314 | GREATER_EQ 315 | AND_AND 316 | OR_OR 317 | COMMA 318 | DOT_STAR 319 | DEREF_STAR 556 pm-expressioncast-expression [COMMA, PLUS, MINUS, EQ, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] COMMA shift, and go to state 707 PLUS shift, and go to state 708 MINUS shift, and go to state 709 EQ shift, and go to state 710 AND shift, and go to state 711 MULT_EQ shift, and go to state 712 DIV_EQ shift, and go to state 713 MOD_EQ shift, and go to state 714 PLUS_EQ shift, and go to state 715 MINUS_EQ shift, and go to state 716 RSHIFT_EQ shift, and go to state 717 LSHIFT_EQ shift, and go to state 718 AND_EQ shift, and go to state 719 XOR_EQ shift, and go to state 720 OR_EQ shift, and go to state 721 AND_AND shift, and go to state 722 OR_OR shift, and go to state 723 EQ_EQ shift, and go to state 724 NOT_EQ shift, and go to state 725 XOR shift, and go to state 726 LESS shift, and go to state 727 GREATER shift, and go to state 728 MULT shift, and go to state 729 DIV shift, and go to state 730 MOD shift, and go to state 731 OR shift, and go to state 732 LSHIFT shift, and go to state 733 RSHIFT shift, and go to state 734 LESS_EQ shift, and go to state 735 GREATER_EQ shift, and go to state 736 DOT_STAR shift, and go to state 737 DEREF_STAR shift, and go to state 738 COMMA [reduce using rule 556 (pm-expression)] PLUS [reduce using rule 556 (pm-expression)] MINUS [reduce using rule 556 (pm-expression)] EQ [reduce using rule 556 (pm-expression)] AND [reduce using rule 556 (pm-expression)] MULT_EQ [reduce using rule 556 (pm-expression)] DIV_EQ [reduce using rule 556 (pm-expression)] MOD_EQ [reduce using rule 556 (pm-expression)] PLUS_EQ [reduce using rule 556 (pm-expression)] MINUS_EQ [reduce using rule 556 (pm-expression)] RSHIFT_EQ [reduce using rule 556 (pm-expression)] LSHIFT_EQ [reduce using rule 556 (pm-expression)] AND_EQ [reduce using rule 556 (pm-expression)] XOR_EQ [reduce using rule 556 (pm-expression)] OR_EQ [reduce using rule 556 (pm-expression)] AND_AND [reduce using rule 556 (pm-expression)] OR_OR [reduce using rule 556 (pm-expression)] EQ_EQ [reduce using rule 556 (pm-expression)] NOT_EQ [reduce using rule 556 (pm-expression)] XOR [reduce using rule 556 (pm-expression)] LESS [reduce using rule 556 (pm-expression)] GREATER [reduce using rule 556 (pm-expression)] MULT [reduce using rule 556 (pm-expression)] DIV [reduce using rule 556 (pm-expression)] MOD [reduce using rule 556 (pm-expression)] OR [reduce using rule 556 (pm-expression)] LSHIFT [reduce using rule 556 (pm-expression)] RSHIFT [reduce using rule 556 (pm-expression)] LESS_EQ [reduce using rule 556 (pm-expression)] GREATER_EQ [reduce using rule 556 (pm-expression)] DOT_STAR [reduce using rule 556 (pm-expression)] DEREF_STAR [reduce using rule 556 (pm-expression)] $default reduce using rule 556 (pm-expression) fold-operator go to state 740

State 439

278 expressionexpression COMMA assignment-expression 578 primary-expressionOPEN_PAREN expression CLOSE_PAREN COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 741

State 440

130 cast-expressionOPEN_PAREN type-id CLOSE_PAREN cast-expression CLOSE_PAREN shift, and go to state 742

State 441

5 ELLIPSIS-opt %empty [COMMA, CLOSE_SQUARE] 6 | ELLIPSIS 635 simple-captureIDENTIFIER ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 743

State 442

637 simple-captureTHIS $default reduce using rule 637 (simple-capture)

State 443

126 capture-defaultEQ $default reduce using rule 126 (capture-default)

State 444

5 ELLIPSIS-opt %empty [IDENTIFIER] 6 | ELLIPSIS 125 capture-defaultAND [COMMA, CLOSE_SQUARE] 347 init-captureAND ELLIPSIS-opt IDENTIFIER initializer 636 simple-captureAND IDENTIFIER ELLIPSIS-opt ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 744 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 125 (capture-default) ELLIPSIS-opt go to state 745

State 445

638 simple-captureMULT THIS THIS shift, and go to state 746

State 446

346 init-captureELLIPSIS-opt IDENTIFIER initializer IDENTIFIER shift, and go to state 747

State 447

127 capture-listcapture $default reduce using rule 127 (capture-list)

State 448

379 lambda-capturecapture-default [CLOSE_SQUARE] 381 | capture-default COMMA capture-list COMMA shift, and go to state 748 $default reduce using rule 379 (lambda-capture)

State 449

128 capture-listcapture-list COMMA capture 380 lambda-capturecapture-list [CLOSE_SQUARE] COMMA shift, and go to state 749 $default reduce using rule 380 (lambda-capture)

State 450

124 captureinit-capture $default reduce using rule 124 (capture)

State 451

383 lambda-capture-optlambda-capture $default reduce using rule 383 (lambda-capture-opt)

State 452

388 lambda-introducerOPEN_SQUARE lambda-capture-opt CLOSE_SQUARE CLOSE_SQUARE shift, and go to state 750

State 453

123 capturesimple-capture $default reduce using rule 123 (capture)

State 454

90 await-expressionCO_AWAIT cast-expression $default reduce using rule 90 (await-expression)

State 455

542 overloadable-operatorCOMMA $default reduce using rule 542 (overloadable-operator)

State 456

509 overloadable-operatorNOT $default reduce using rule 509 (overloadable-operator)

State 457

510 overloadable-operatorPLUS $default reduce using rule 510 (overloadable-operator)

State 458

511 overloadable-operatorMINUS $default reduce using rule 511 (overloadable-operator)

State 459

518 overloadable-operatorEQ $default reduce using rule 518 (overloadable-operator)

State 460

504 overloadable-operatorOPEN_PAREN CLOSE_PAREN CLOSE_PAREN shift, and go to state 751

State 461

516 overloadable-operatorAND $default reduce using rule 516 (overloadable-operator)

State 462

521 overloadable-operatorMULT_EQ $default reduce using rule 521 (overloadable-operator)

State 463

522 overloadable-operatorDIV_EQ $default reduce using rule 522 (overloadable-operator)

State 464

523 overloadable-operatorMOD_EQ $default reduce using rule 523 (overloadable-operator)

State 465

519 overloadable-operatorPLUS_EQ $default reduce using rule 519 (overloadable-operator)

State 466

520 overloadable-operatorMINUS_EQ $default reduce using rule 520 (overloadable-operator)

State 467

539 overloadable-operatorRSHIFT_EQ $default reduce using rule 539 (overloadable-operator)

State 468

538 overloadable-operatorLSHIFT_EQ $default reduce using rule 538 (overloadable-operator)

State 469

525 overloadable-operatorAND_EQ $default reduce using rule 525 (overloadable-operator)

State 470

524 overloadable-operatorXOR_EQ $default reduce using rule 524 (overloadable-operator)

State 471

526 overloadable-operatorOR_EQ $default reduce using rule 526 (overloadable-operator)

State 472

505 overloadable-operatorOPEN_SQUARE CLOSE_SQUARE CLOSE_SQUARE shift, and go to state 752

State 473

503 overloadable-operatorCO_AWAIT $default reduce using rule 503 (overloadable-operator)

State 474

533 overloadable-operatorSPACESHIP $default reduce using rule 533 (overloadable-operator)

State 475

534 overloadable-operatorAND_AND $default reduce using rule 534 (overloadable-operator)

State 476

535 overloadable-operatorOR_OR $default reduce using rule 535 (overloadable-operator)

State 477

506 overloadable-operatorDEREF $default reduce using rule 506 (overloadable-operator)

State 478

500 overloadable-operatorDELETE [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 502 | DELETE OPEN_SQUARE CLOSE_SQUARE OPEN_SQUARE shift, and go to state 753 OPEN_SQUARE [reduce using rule 500 (overloadable-operator)] $default reduce using rule 500 (overloadable-operator)

State 479

527 overloadable-operatorEQ_EQ $default reduce using rule 527 (overloadable-operator)

State 480

528 overloadable-operatorNOT_EQ $default reduce using rule 528 (overloadable-operator)

State 481

515 overloadable-operatorXOR $default reduce using rule 515 (overloadable-operator)

State 482

529 overloadable-operatorLESS $default reduce using rule 529 (overloadable-operator)

State 483

530 overloadable-operatorGREATER $default reduce using rule 530 (overloadable-operator)

State 484

512 overloadable-operatorMULT $default reduce using rule 512 (overloadable-operator)

State 485

513 overloadable-operatorDIV $default reduce using rule 513 (overloadable-operator)

State 486

514 overloadable-operatorMOD $default reduce using rule 514 (overloadable-operator)

State 487

517 overloadable-operatorOR $default reduce using rule 517 (overloadable-operator)

State 488

536 overloadable-operatorLSHIFT $default reduce using rule 536 (overloadable-operator)

State 489

537 overloadable-operatorRSHIFT $default reduce using rule 537 (overloadable-operator)

State 490

531 overloadable-operatorLESS_EQ $default reduce using rule 531 (overloadable-operator)

State 491

532 overloadable-operatorGREATER_EQ $default reduce using rule 532 (overloadable-operator)

State 492

507 overloadable-operatorDEREF_STAR $default reduce using rule 507 (overloadable-operator)

State 493

499 overloadable-operatorNEW [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 501 | NEW OPEN_SQUARE CLOSE_SQUARE OPEN_SQUARE shift, and go to state 754 OPEN_SQUARE [reduce using rule 499 (overloadable-operator)] $default reduce using rule 499 (overloadable-operator)

State 494

508 overloadable-operatorCOMPL $default reduce using rule 508 (overloadable-operator)

State 495

540 overloadable-operatorPLUS_PLUS $default reduce using rule 540 (overloadable-operator)

State 496

541 overloadable-operatorMINUS_MINUS $default reduce using rule 541 (overloadable-operator)

State 497

169 conversion-function-idOPERATOR conversion-type-id $default reduce using rule 169 (conversion-function-id)

State 498

497 operator-function-idOPERATOR overloadable-operator [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER LESS shift, and go to state 755 LESS [reduce using rule 497 (operator-function-id)] $default reduce using rule 497 (operator-function-id)

State 499

392 literal-operator-idOPERATOR string-literal IDENTIFIER 734 ud-suffix IDENTIFIER 761 user-defined-string-literalstring-literal ud-suffix IDENTIFIER shift, and go to state 756 ud-suffix go to state 757

State 500

137 class-name IDENTIFIER 138 | simple-template-id 166 conversion-declarator ptr-operator conversion-declarator-opt 167 conversion-declarator-opt %empty [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 168 | conversion-declarator 170 conversion-type-idtype-specifier-seq conversion-declarator-opt 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 167 (conversion-declarator-opt)] SCOPE [reduce using rule 167 (conversion-declarator-opt)] AND [reduce using rule 167 (conversion-declarator-opt)] AND_AND [reduce using rule 167 (conversion-declarator-opt)] DECLTYPE [reduce using rule 167 (conversion-declarator-opt)] MULT [reduce using rule 167 (conversion-declarator-opt)] $default reduce using rule 167 (conversion-declarator-opt) class-name go to state 55 conversion-declarator go to state 758 conversion-declarator-opt go to state 759 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 ptr-operator go to state 760 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 501

393 literal-operator-idOPERATOR user-defined-string-literal $default reduce using rule 393 (literal-operator-id)

State 502

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 547 parameter-declaration-clause parameter-declaration-list-opt ELLIPSIS-opt 548 | parameter-declaration-list COMMA ELLIPSIS 549 parameter-declaration-list parameter-declaration 550 | parameter-declaration-list COMMA parameter-declaration 551 parameter-declaration-list-opt %empty [ELLIPSIS, CLOSE_PAREN] 552 | parameter-declaration-list 615 requirement-parameter-listOPEN_PAREN parameter-declaration-clause CLOSE_PAREN ELLIPSIS reduce using rule 551 (parameter-declaration-list-opt) CLOSE_PAREN reduce using rule 551 (parameter-declaration-list-opt) $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 parameter-declaration go to state 617 parameter-declaration-clause go to state 761 parameter-declaration-list go to state 619 parameter-declaration-list-opt go to state 620

State 503

617 requirement-parameter-list-optrequirement-parameter-list $default reduce using rule 617 (requirement-parameter-list-opt)

State 504

614 requirement-body OPEN_BRACE requirement-seq CLOSE_BRACE 623 requires-expressionREQUIRES requirement-parameter-list-opt requirement-body OPEN_BRACE shift, and go to state 762 requirement-body go to state 763

State 505

137 class-nameIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 246 enum-nameIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 695 template-nameIDENTIFIER [LESS] 730 typedef-nameIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] COMMA reduce using rule 137 (class-name) COMMA [reduce using rule 246 (enum-name)] COMMA [reduce using rule 730 (typedef-name)] CONSTEXPR reduce using rule 137 (class-name) CONSTEXPR [reduce using rule 246 (enum-name)] CONSTEXPR [reduce using rule 730 (typedef-name)] ELLIPSIS reduce using rule 137 (class-name) ELLIPSIS [reduce using rule 246 (enum-name)] ELLIPSIS [reduce using rule 730 (typedef-name)] EXPORT reduce using rule 137 (class-name) EXPORT [reduce using rule 246 (enum-name)] EXPORT [reduce using rule 730 (typedef-name)] EXTERN reduce using rule 137 (class-name) EXTERN [reduce using rule 246 (enum-name)] EXTERN [reduce using rule 730 (typedef-name)] IDENTIFIER reduce using rule 137 (class-name) IDENTIFIER [reduce using rule 246 (enum-name)] IDENTIFIER [reduce using rule 730 (typedef-name)] INLINE reduce using rule 137 (class-name) INLINE [reduce using rule 246 (enum-name)] INLINE [reduce using rule 730 (typedef-name)] NOEXCEPT reduce using rule 137 (class-name) NOEXCEPT [reduce using rule 246 (enum-name)] NOEXCEPT [reduce using rule 730 (typedef-name)] SCOPE reduce using rule 137 (class-name) SCOPE [reduce using rule 246 (enum-name)] SCOPE [reduce using rule 730 (typedef-name)] TEMPLATE reduce using rule 137 (class-name) TEMPLATE [reduce using rule 246 (enum-name)] TEMPLATE [reduce using rule 730 (typedef-name)] TYPENAME reduce using rule 137 (class-name) TYPENAME [reduce using rule 246 (enum-name)] TYPENAME [reduce using rule 730 (typedef-name)] VIRTUAL reduce using rule 137 (class-name) VIRTUAL [reduce using rule 246 (enum-name)] VIRTUAL [reduce using rule 730 (typedef-name)] PLUS reduce using rule 137 (class-name) PLUS [reduce using rule 246 (enum-name)] PLUS [reduce using rule 730 (typedef-name)] MINUS reduce using rule 137 (class-name) MINUS [reduce using rule 246 (enum-name)] MINUS [reduce using rule 730 (typedef-name)] USING reduce using rule 137 (class-name) USING [reduce using rule 246 (enum-name)] USING [reduce using rule 730 (typedef-name)] EQ reduce using rule 137 (class-name) EQ [reduce using rule 246 (enum-name)] EQ [reduce using rule 730 (typedef-name)] SEMICOLON reduce using rule 137 (class-name) SEMICOLON [reduce using rule 246 (enum-name)] SEMICOLON [reduce using rule 730 (typedef-name)] ALIGNAS reduce using rule 137 (class-name) ALIGNAS [reduce using rule 246 (enum-name)] ALIGNAS [reduce using rule 730 (typedef-name)] OPEN_PAREN reduce using rule 137 (class-name) OPEN_PAREN [reduce using rule 246 (enum-name)] OPEN_PAREN [reduce using rule 730 (typedef-name)] CLOSE_PAREN reduce using rule 137 (class-name) CLOSE_PAREN [reduce using rule 246 (enum-name)] CLOSE_PAREN [reduce using rule 730 (typedef-name)] AND reduce using rule 137 (class-name) AND [reduce using rule 246 (enum-name)] AND [reduce using rule 730 (typedef-name)] ASM reduce using rule 137 (class-name) ASM [reduce using rule 246 (enum-name)] ASM [reduce using rule 730 (typedef-name)] MULT_EQ reduce using rule 137 (class-name) MULT_EQ [reduce using rule 246 (enum-name)] MULT_EQ [reduce using rule 730 (typedef-name)] DIV_EQ reduce using rule 137 (class-name) DIV_EQ [reduce using rule 246 (enum-name)] DIV_EQ [reduce using rule 730 (typedef-name)] MOD_EQ reduce using rule 137 (class-name) MOD_EQ [reduce using rule 246 (enum-name)] MOD_EQ [reduce using rule 730 (typedef-name)] PLUS_EQ reduce using rule 137 (class-name) PLUS_EQ [reduce using rule 246 (enum-name)] PLUS_EQ [reduce using rule 730 (typedef-name)] MINUS_EQ reduce using rule 137 (class-name) MINUS_EQ [reduce using rule 246 (enum-name)] MINUS_EQ [reduce using rule 730 (typedef-name)] RSHIFT_EQ reduce using rule 137 (class-name) RSHIFT_EQ [reduce using rule 246 (enum-name)] RSHIFT_EQ [reduce using rule 730 (typedef-name)] LSHIFT_EQ reduce using rule 137 (class-name) LSHIFT_EQ [reduce using rule 246 (enum-name)] LSHIFT_EQ [reduce using rule 730 (typedef-name)] AND_EQ reduce using rule 137 (class-name) AND_EQ [reduce using rule 246 (enum-name)] AND_EQ [reduce using rule 730 (typedef-name)] XOR_EQ reduce using rule 137 (class-name) XOR_EQ [reduce using rule 246 (enum-name)] XOR_EQ [reduce using rule 730 (typedef-name)] OR_EQ reduce using rule 137 (class-name) OR_EQ [reduce using rule 246 (enum-name)] OR_EQ [reduce using rule 730 (typedef-name)] OPEN_SQUARE reduce using rule 137 (class-name) OPEN_SQUARE [reduce using rule 246 (enum-name)] OPEN_SQUARE [reduce using rule 730 (typedef-name)] CLOSE_SQUARE reduce using rule 137 (class-name) CLOSE_SQUARE [reduce using rule 246 (enum-name)] CLOSE_SQUARE [reduce using rule 730 (typedef-name)] COLON reduce using rule 137 (class-name) COLON [reduce using rule 246 (enum-name)] COLON [reduce using rule 730 (typedef-name)] OPEN_BRACE reduce using rule 137 (class-name) OPEN_BRACE [reduce using rule 246 (enum-name)] OPEN_BRACE [reduce using rule 730 (typedef-name)] CLOSE_BRACE reduce using rule 137 (class-name) CLOSE_BRACE [reduce using rule 246 (enum-name)] CLOSE_BRACE [reduce using rule 730 (typedef-name)] CLASS reduce using rule 137 (class-name) CLASS [reduce using rule 246 (enum-name)] CLASS [reduce using rule 730 (typedef-name)] STRUCT reduce using rule 137 (class-name) STRUCT [reduce using rule 246 (enum-name)] STRUCT [reduce using rule 730 (typedef-name)] UNION reduce using rule 137 (class-name) UNION [reduce using rule 246 (enum-name)] UNION [reduce using rule 730 (typedef-name)] FINAL reduce using rule 137 (class-name) FINAL [reduce using rule 246 (enum-name)] FINAL [reduce using rule 730 (typedef-name)] SPACESHIP reduce using rule 137 (class-name) SPACESHIP [reduce using rule 246 (enum-name)] SPACESHIP [reduce using rule 730 (typedef-name)] CONCEPT reduce using rule 137 (class-name) CONCEPT [reduce using rule 246 (enum-name)] CONCEPT [reduce using rule 730 (typedef-name)] QUERY reduce using rule 137 (class-name) QUERY [reduce using rule 246 (enum-name)] QUERY [reduce using rule 730 (typedef-name)] AND_AND reduce using rule 137 (class-name) AND_AND [reduce using rule 246 (enum-name)] AND_AND [reduce using rule 730 (typedef-name)] OR_OR reduce using rule 137 (class-name) OR_OR [reduce using rule 246 (enum-name)] OR_OR [reduce using rule 730 (typedef-name)] OPERATOR reduce using rule 137 (class-name) OPERATOR [reduce using rule 246 (enum-name)] OPERATOR [reduce using rule 730 (typedef-name)] CONST reduce using rule 137 (class-name) CONST [reduce using rule 246 (enum-name)] CONST [reduce using rule 730 (typedef-name)] VOLATILE reduce using rule 137 (class-name) VOLATILE [reduce using rule 246 (enum-name)] VOLATILE [reduce using rule 730 (typedef-name)] FRIEND reduce using rule 137 (class-name) FRIEND [reduce using rule 246 (enum-name)] FRIEND [reduce using rule 730 (typedef-name)] TYPEDEF reduce using rule 137 (class-name) TYPEDEF [reduce using rule 246 (enum-name)] TYPEDEF [reduce using rule 730 (typedef-name)] CONSTEVAL reduce using rule 137 (class-name) CONSTEVAL [reduce using rule 246 (enum-name)] CONSTEVAL [reduce using rule 730 (typedef-name)] CONSTINIT reduce using rule 137 (class-name) CONSTINIT [reduce using rule 246 (enum-name)] CONSTINIT [reduce using rule 730 (typedef-name)] DECLTYPE reduce using rule 137 (class-name) DECLTYPE [reduce using rule 246 (enum-name)] DECLTYPE [reduce using rule 730 (typedef-name)] DEREF reduce using rule 137 (class-name) DEREF [reduce using rule 246 (enum-name)] DEREF [reduce using rule 730 (typedef-name)] DOT reduce using rule 137 (class-name) DOT [reduce using rule 246 (enum-name)] DOT [reduce using rule 730 (typedef-name)] ENUM reduce using rule 137 (class-name) ENUM [reduce using rule 246 (enum-name)] ENUM [reduce using rule 730 (typedef-name)] EQ_EQ reduce using rule 137 (class-name) EQ_EQ [reduce using rule 246 (enum-name)] EQ_EQ [reduce using rule 730 (typedef-name)] NOT_EQ reduce using rule 137 (class-name) NOT_EQ [reduce using rule 246 (enum-name)] NOT_EQ [reduce using rule 730 (typedef-name)] XOR reduce using rule 137 (class-name) XOR [reduce using rule 246 (enum-name)] XOR [reduce using rule 730 (typedef-name)] LESS reduce using rule 137 (class-name) LESS [reduce using rule 246 (enum-name)] LESS [reduce using rule 695 (template-name)] LESS [reduce using rule 730 (typedef-name)] GREATER reduce using rule 137 (class-name) GREATER [reduce using rule 246 (enum-name)] GREATER [reduce using rule 730 (typedef-name)] EXPLICIT reduce using rule 137 (class-name) EXPLICIT [reduce using rule 246 (enum-name)] EXPLICIT [reduce using rule 730 (typedef-name)] MULT reduce using rule 137 (class-name) MULT [reduce using rule 246 (enum-name)] MULT [reduce using rule 730 (typedef-name)] DIV reduce using rule 137 (class-name) DIV [reduce using rule 246 (enum-name)] DIV [reduce using rule 730 (typedef-name)] MOD reduce using rule 137 (class-name) MOD [reduce using rule 246 (enum-name)] MOD [reduce using rule 730 (typedef-name)] OR reduce using rule 137 (class-name) OR [reduce using rule 246 (enum-name)] OR [reduce using rule 730 (typedef-name)] LSHIFT reduce using rule 137 (class-name) LSHIFT [reduce using rule 246 (enum-name)] LSHIFT [reduce using rule 730 (typedef-name)] RSHIFT reduce using rule 137 (class-name) RSHIFT [reduce using rule 246 (enum-name)] RSHIFT [reduce using rule 730 (typedef-name)] LESS_EQ reduce using rule 137 (class-name) LESS_EQ [reduce using rule 246 (enum-name)] LESS_EQ [reduce using rule 730 (typedef-name)] GREATER_EQ reduce using rule 137 (class-name) GREATER_EQ [reduce using rule 246 (enum-name)] GREATER_EQ [reduce using rule 730 (typedef-name)] DOT_STAR reduce using rule 137 (class-name) DOT_STAR [reduce using rule 246 (enum-name)] DOT_STAR [reduce using rule 730 (typedef-name)] DEREF_STAR reduce using rule 137 (class-name) DEREF_STAR [reduce using rule 246 (enum-name)] DEREF_STAR [reduce using rule 730 (typedef-name)] TRY reduce using rule 137 (class-name) TRY [reduce using rule 246 (enum-name)] TRY [reduce using rule 730 (typedef-name)] IMPORT reduce using rule 137 (class-name) IMPORT [reduce using rule 246 (enum-name)] IMPORT [reduce using rule 730 (typedef-name)] NAMESPACE reduce using rule 137 (class-name) NAMESPACE [reduce using rule 246 (enum-name)] NAMESPACE [reduce using rule 730 (typedef-name)] REQUIRES reduce using rule 137 (class-name) REQUIRES [reduce using rule 246 (enum-name)] REQUIRES [reduce using rule 730 (typedef-name)] COMPL reduce using rule 137 (class-name) COMPL [reduce using rule 246 (enum-name)] COMPL [reduce using rule 730 (typedef-name)] PLUS_PLUS reduce using rule 137 (class-name) PLUS_PLUS [reduce using rule 246 (enum-name)] PLUS_PLUS [reduce using rule 730 (typedef-name)] MINUS_MINUS reduce using rule 137 (class-name) MINUS_MINUS [reduce using rule 246 (enum-name)] MINUS_MINUS [reduce using rule 730 (typedef-name)] AUTO reduce using rule 137 (class-name) AUTO [reduce using rule 246 (enum-name)] AUTO [reduce using rule 730 (typedef-name)] CHAR reduce using rule 137 (class-name) CHAR [reduce using rule 246 (enum-name)] CHAR [reduce using rule 730 (typedef-name)] CHAR8_T reduce using rule 137 (class-name) CHAR8_T [reduce using rule 246 (enum-name)] CHAR8_T [reduce using rule 730 (typedef-name)] CHAR16_T reduce using rule 137 (class-name) CHAR16_T [reduce using rule 246 (enum-name)] CHAR16_T [reduce using rule 730 (typedef-name)] CHAR32_T reduce using rule 137 (class-name) CHAR32_T [reduce using rule 246 (enum-name)] CHAR32_T [reduce using rule 730 (typedef-name)] WCHAR_T reduce using rule 137 (class-name) WCHAR_T [reduce using rule 246 (enum-name)] WCHAR_T [reduce using rule 730 (typedef-name)] BOOL reduce using rule 137 (class-name) BOOL [reduce using rule 246 (enum-name)] BOOL [reduce using rule 730 (typedef-name)] SHORT reduce using rule 137 (class-name) SHORT [reduce using rule 246 (enum-name)] SHORT [reduce using rule 730 (typedef-name)] INT reduce using rule 137 (class-name) INT [reduce using rule 246 (enum-name)] INT [reduce using rule 730 (typedef-name)] LONG reduce using rule 137 (class-name) LONG [reduce using rule 246 (enum-name)] LONG [reduce using rule 730 (typedef-name)] SIGNED reduce using rule 137 (class-name) SIGNED [reduce using rule 246 (enum-name)] SIGNED [reduce using rule 730 (typedef-name)] UNSIGNED reduce using rule 137 (class-name) UNSIGNED [reduce using rule 246 (enum-name)] UNSIGNED [reduce using rule 730 (typedef-name)] FLOAT reduce using rule 137 (class-name) FLOAT [reduce using rule 246 (enum-name)] FLOAT [reduce using rule 730 (typedef-name)] DOUBLE reduce using rule 137 (class-name) DOUBLE [reduce using rule 246 (enum-name)] DOUBLE [reduce using rule 730 (typedef-name)] VOID reduce using rule 137 (class-name) VOID [reduce using rule 246 (enum-name)] VOID [reduce using rule 730 (typedef-name)] STATIC_ASSERT reduce using rule 137 (class-name) STATIC_ASSERT [reduce using rule 246 (enum-name)] STATIC_ASSERT [reduce using rule 730 (typedef-name)] STATIC reduce using rule 137 (class-name) STATIC [reduce using rule 246 (enum-name)] STATIC [reduce using rule 730 (typedef-name)] THREAD_LOCAL reduce using rule 137 (class-name) THREAD_LOCAL [reduce using rule 246 (enum-name)] THREAD_LOCAL [reduce using rule 730 (typedef-name)] MUTABLE reduce using rule 137 (class-name) MUTABLE [reduce using rule 246 (enum-name)] MUTABLE [reduce using rule 730 (typedef-name)] OVERRIDE reduce using rule 137 (class-name) OVERRIDE [reduce using rule 246 (enum-name)] OVERRIDE [reduce using rule 730 (typedef-name)] $default reduce using rule 137 (class-name)

State 506

759 unqualified-idCOMPL decltype-specifier $default reduce using rule 759 (unqualified-id)

State 507

758 unqualified-idCOMPL type-name $default reduce using rule 758 (unqualified-id)

State 508

737 unary-expressionPLUS_PLUS cast-expression $default reduce using rule 737 (unary-expression)

State 509

738 unary-expressionMINUS_MINUS cast-expression $default reduce using rule 738 (unary-expression)

State 510

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 570 postfix-expressionDYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 764 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 511

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 571 postfix-expressionSTATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 765 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 512

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 572 postfix-expressionREINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 766 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 513

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 573 postfix-expressionCONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 767 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 514

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 768 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 769 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 515

55 assignment-expression-optassignment-expression $default reduce using rule 55 (assignment-expression-opt)

State 516

700 throw-expressionTHROW assignment-expression-opt $default reduce using rule 700 (throw-expression)

State 517

742 unary-expressionSIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN OPEN_PAREN shift, and go to state 770

State 518

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 285 | OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list ELLIPSIS shift, and go to state 437 IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 438 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 439 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 771 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 519

740 unary-expressionSIZEOF unary-expression $default reduce using rule 740 (unary-expression)

State 520

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 743 unary-expressionALIGNOF OPEN_PAREN type-id CLOSE_PAREN IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 772 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 521

774 yield-expressionCO_YIELD assignment-expression $default reduce using rule 774 (yield-expression)

State 522

775 yield-expressionCO_YIELD braced-init-list $default reduce using rule 775 (yield-expression)

State 523

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 222 | SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 773 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 774 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 524

466 new-expressionSCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 472 new-placement OPEN_PAREN expression-list CLOSE_PAREN 473 new-placement-opt %empty [IDENTIFIER, SCOPE, TYPENAME, OPEN_PAREN, CLASS, STRUCT, UNION, CONST, VOLATILE, DECLTYPE, ENUM, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID] 474 | new-placement OPEN_PAREN shift, and go to state 775 OPEN_PAREN [reduce using rule 473 (new-placement-opt)] $default reduce using rule 473 (new-placement-opt) new-placement go to state 776 new-placement-opt go to state 777

State 525

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 42 additive-expressionadditive-expression PLUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 778 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 526

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 43 additive-expressionadditive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 779 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 527

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 48 and-expressionand-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 780 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 528

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 147 compare-expressioncompare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 shift-expression go to state 781 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 529

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 257 equality-expressionequality-expression EQ_EQ relational-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 782 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 530

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 258 equality-expressionequality-expression NOT_EQ relational-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 783 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 531

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 263 exclusive-or-expressionexclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 784 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 532

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 278 expressionexpression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 785 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 533

214 decltype-specifierDECLTYPE OPEN_PAREN expression CLOSE_PAREN $default reduce using rule 214 (decltype-specifier)

State 534

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 345 inclusive-or-expressioninclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 786 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 535

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 385 lambda-declaratorOPEN_PAREN parameter-declaration-clause CLOSE_PAREN lambda-specifiers requires-clause-opt 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 547 parameter-declaration-clause parameter-declaration-list-opt ELLIPSIS-opt 548 | parameter-declaration-list COMMA ELLIPSIS 549 parameter-declaration-list parameter-declaration 550 | parameter-declaration-list COMMA parameter-declaration 551 parameter-declaration-list-opt %empty [ELLIPSIS, CLOSE_PAREN] 552 | parameter-declaration-list ELLIPSIS reduce using rule 551 (parameter-declaration-list-opt) CLOSE_PAREN reduce using rule 551 (parameter-declaration-list-opt) $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 parameter-declaration go to state 617 parameter-declaration-clause go to state 787 parameter-declaration-list go to state 619 parameter-declaration-list-opt go to state 620

State 536

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 387 lambda-expressionlambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 643 simple-template-id template-name LESS template-argument-list-opt GREATER 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 696 template-parameter type-parameter 697 | parameter-declaration 698 template-parameter-list template-parameter 699 | template-parameter-list COMMA template-parameter 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 712 type-name class-name 713 | enum-name 714 | typedef-name 715 type-parameter type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 716 | type-parameter-key IDENTIFIER-opt EQ type-id 717 | type-constraint ELLIPSIS-opt IDENTIFIER-opt 718 | type-constraint IDENTIFIER-opt EQ type-id 719 | template-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt 720 | template-head type-parameter-key IDENTIFIER-opt EQ id-expression 721 type-parameter-key CLASS 722 | TYPENAME 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 215 TYPENAME shift, and go to state 216 CLASS shift, and go to state 217 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 220 parameter-declaration go to state 221 simple-template-id go to state 96 template-head go to state 222 template-name go to state 102 template-parameter go to state 223 template-parameter-list go to state 788 type-constraint go to state 225 type-name go to state 106 type-parameter go to state 226 type-parameter-key go to state 227 typedef-name go to state 108

State 537

192 decl-specifier-seq-optdecl-specifier-seq $default reduce using rule 192 (decl-specifier-seq-opt)

State 538

389 lambda-specifiersdecl-specifier-seq-opt noexcept-specifier-opt attribute-specifier-seq-opt trailing-return-type-opt 478 noexcept-specifier NOEXCEPT OPEN_PAREN constant-expression CLOSE_PAREN 479 | NOEXCEPT 480 noexcept-specifier-opt %empty [ALIGNAS, OPEN_SQUARE, OPEN_BRACE, DEREF, REQUIRES] 481 | noexcept-specifier NOEXCEPT shift, and go to state 789 $default reduce using rule 480 (noexcept-specifier-opt) noexcept-specifier go to state 790 noexcept-specifier-opt go to state 791

State 539

149 compound-statement OPEN_BRACE statement-seq-opt CLOSE_BRACE 386 lambda-expressionlambda-introducer lambda-declarator compound-statement OPEN_BRACE shift, and go to state 792 compound-statement go to state 793

State 540

384 lambda-declaratorlambda-specifiers $default reduce using rule 384 (lambda-declarator)

State 541

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 682 template-argument constant-expression 683 | type-id 684 | id-expression 685 template-argument-list template-argument ELLIPSIS-opt 686 | template-argument-list COMMA template-argument ELLIPSIS-opt 687 template-argument-list-opt %empty [GREATER] 688 | template-argument-list 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] GREATER reduce using rule 687 (template-argument-list-opt) AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 405 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 406 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-argument go to state 408 template-argument-list go to state 409 template-argument-list-opt go to state 794 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 411 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 542

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 395 logical-and-expressionlogical-and-expression AND_AND inclusive-or-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 795 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 543

56 assignment-operatorEQ $default reduce using rule 56 (assignment-operator)

State 544

57 assignment-operatorMULT_EQ $default reduce using rule 57 (assignment-operator)

State 545

58 assignment-operatorDIV_EQ $default reduce using rule 58 (assignment-operator)

State 546

59 assignment-operatorMOD_EQ $default reduce using rule 59 (assignment-operator)

State 547

60 assignment-operatorPLUS_EQ $default reduce using rule 60 (assignment-operator)

State 548

61 assignment-operatorMINUS_EQ $default reduce using rule 61 (assignment-operator)

State 549

62 assignment-operatorRSHIFT_EQ $default reduce using rule 62 (assignment-operator)

State 550

63 assignment-operatorLSHIFT_EQ $default reduce using rule 63 (assignment-operator)

State 551

64 assignment-operatorAND_EQ $default reduce using rule 64 (assignment-operator)

State 552

65 assignment-operatorXOR_EQ $default reduce using rule 65 (assignment-operator)

State 553

66 assignment-operatorOR_EQ $default reduce using rule 66 (assignment-operator)

State 554

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 796 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 555

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 397 logical-or-expressionlogical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 797 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 556

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 798 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 557

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 440 multiplicative-expressionmultiplicative-expression MULT pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 799 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 558

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 441 multiplicative-expressionmultiplicative-expression DIV pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 800 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 559

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 442 multiplicative-expressionmultiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 801 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 560

169 conversion-function-id OPERATOR conversion-type-id 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 599 qualified-idnested-name-specifier TEMPLATE-opt unqualified-id 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 802 OPERATOR shift, and go to state 248 COMPL shift, and go to state 334 conversion-function-id go to state 272 literal-operator-id go to state 282 operator-function-id go to state 289 simple-template-id go to state 803 template-id go to state 299 template-name go to state 102 unqualified-id go to state 804

State 561

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 682 template-argument constant-expression 683 | type-id 684 | id-expression 685 template-argument-list template-argument ELLIPSIS-opt 686 | template-argument-list COMMA template-argument ELLIPSIS-opt 687 template-argument-list-opt %empty [GREATER] 688 | template-argument-list 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] GREATER reduce using rule 687 (template-argument-list-opt) AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 405 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 406 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-argument go to state 408 template-argument-list go to state 409 template-argument-list-opt go to state 805 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 411 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 562

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 557 pm-expressionpm-expression DOT_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 806 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 563

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 558 pm-expressionpm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 807 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 564

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 279 expression-list initializer-list 280 expression-list-opt %empty [CLOSE_PAREN] 281 | expression-list 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_PAREN reduce using rule 280 (expression-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression-list go to state 808 expression-list-opt go to state 809 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 645 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 565

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 279 expression-list initializer-list 280 expression-list-opt %empty [CLOSE_SQUARE] 281 | expression-list 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_SQUARE reduce using rule 280 (expression-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression-list go to state 808 expression-list-opt go to state 810 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 645 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 566

21 TEMPLATE-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 22 | TEMPLATE 567 postfix-expressionpostfix-expression DEREF TEMPLATE-opt id-expression TEMPLATE shift, and go to state 229 $default reduce using rule 21 (TEMPLATE-opt) TEMPLATE-opt go to state 811

State 567

21 TEMPLATE-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 22 | TEMPLATE 566 postfix-expressionpostfix-expression DOT TEMPLATE-opt id-expression TEMPLATE shift, and go to state 229 $default reduce using rule 21 (TEMPLATE-opt) TEMPLATE-opt go to state 812

State 568

568 postfix-expressionpostfix-expression PLUS_PLUS $default reduce using rule 568 (postfix-expression)

State 569

569 postfix-expressionpostfix-expression MINUS_MINUS $default reduce using rule 569 (postfix-expression)

State 570

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 606 relational-expressionrelational-expression LESS compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 813 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 571

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 607 relational-expressionrelational-expression GREATER compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 814 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 572

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 608 relational-expressionrelational-expression LESS_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 815 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 573

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 609 relational-expressionrelational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 816 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 574

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 633 shift-expressionshift-expression LSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 817 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 575

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 634 shift-expressionshift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 818 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 576

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 279 expression-list initializer-list 280 expression-list-opt %empty [CLOSE_PAREN] 281 | expression-list 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_PAREN reduce using rule 280 (expression-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression-list go to state 808 expression-list-opt go to state 819 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 645 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 577

564 postfix-expressionsimple-type-specifier braced-init-list $default reduce using rule 564 (postfix-expression)

State 578

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 279 expression-list initializer-list 280 expression-list-opt %empty [CLOSE_PAREN] 281 | expression-list 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_PAREN reduce using rule 280 (expression-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression-list go to state 808 expression-list-opt go to state 820 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 645 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 579

565 postfix-expressiontypename-specifier braced-init-list $default reduce using rule 565 (postfix-expression)

State 580

736 unary-expressionunary-operator cast-expression $default reduce using rule 736 (unary-expression)

State 581

266 explicit-specifierEXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN $default reduce using rule 266 (explicit-specifier)

State 582

436 module-partitionCOLON module-name-qualifier-opt IDENTIFIER $default reduce using rule 436 (module-partition)

State 583

430 module-import-declarationIMPORT header-name attribute-specifier-seq-opt SEMICOLON $default reduce using rule 430 (module-import-declaration)

State 584

428 module-import-declarationIMPORT module-name attribute-specifier-seq-opt SEMICOLON $default reduce using rule 428 (module-import-declaration)

State 585

433 module-name-qualifiermodule-name-qualifier IDENTIFIER DOT $default reduce using rule 433 (module-name-qualifier)

State 586

429 module-import-declarationIMPORT module-partition attribute-specifier-seq-opt SEMICOLON $default reduce using rule 429 (module-import-declaration)

State 587

444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 600 qualified-namespace-specifiernested-name-specifier-opt namespace-name IDENTIFIER shift, and go to state 821 namespace-alias go to state 85 namespace-name go to state 822

State 588

445 namespace-alias-definitionNAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON SEMICOLON shift, and go to state 823

State 589

14 INLINE-optINLINE $default reduce using rule 14 (INLINE-opt)

State 590

235 enclosing-namespace-specifierenclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER 460 nested-namespace-definitionNAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE IDENTIFIER shift, and go to state 824

State 591

676 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 681 string-literal STRING_LITERAL STRING_LITERAL shift, and go to state 117 string-literal go to state 825

State 592

675 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON SEMICOLON shift, and go to state 826

State 593

443 named-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE OPEN_BRACE shift, and go to state 827

State 594

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [CLOSE_BRACE] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 446 namespace-body declaration-seq-opt 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 753 | INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 208 (declaration-seq-opt) CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 828 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-body go to state 829 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 595

640 simple-declarationattribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON $default reduce using rule 640 (simple-declaration)

State 596

242 enum-head-name-optenum-head-name $default reduce using rule 242 (enum-head-name-opt)

State 597

444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 766 using-directiveattribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON IDENTIFIER shift, and go to state 821 namespace-alias go to state 85 namespace-name go to state 830

State 598

5 ELLIPSIS-opt %empty [CLOSE_PAREN] 6 | ELLIPSIS 46 alignment-specifierALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 831

State 599

5 ELLIPSIS-opt %empty [CLOSE_PAREN] 6 | ELLIPSIS 45 alignment-specifierALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 832

State 600

491 noptr-declaratornoptr-declarator parameters-and-qualifiers $default reduce using rule 491 (noptr-declarator)

State 601

493 noptr-declaratorOPEN_PAREN ptr-declarator CLOSE_PAREN $default reduce using rule 493 (noptr-declarator)

State 602

49 asm-declarationattribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON CLOSE_PAREN shift, and go to state 833

State 603

76 attribute-namespace IDENTIFIER 87 attribute-using-prefixUSING attribute-namespace COLON IDENTIFIER shift, and go to state 834 attribute-namespace go to state 835

State 604

89 attribute-using-prefix-optattribute-using-prefix $default reduce using rule 89 (attribute-using-prefix-opt)

State 605

67 attribute attribute-token attribute-argument-clause-opt 72 attribute-list attribute-opt 73 | attribute-list COMMA attribute-opt 74 | attribute ELLIPSIS 75 | attribute-list COMMA attribute ELLIPSIS 76 attribute-namespace IDENTIFIER 77 attribute-opt %empty [COMMA, CLOSE_SQUARE] 78 | attribute 79 attribute-scoped-token attribute-namespace SCOPE IDENTIFIER 80 attribute-specifierOPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 85 attribute-token IDENTIFIER 86 | attribute-scoped-token IDENTIFIER shift, and go to state 836 $default reduce using rule 77 (attribute-opt) attribute go to state 837 attribute-list go to state 838 attribute-namespace go to state 839 attribute-opt go to state 840 attribute-scoped-token go to state 841 attribute-token go to state 842

State 606

175 cv-qualifier CONST 176 | VOLATILE 177 cv-qualifier-seq cv-qualifier cv-qualifier-seq-opt 177 | cv-qualifier cv-qualifier-seq-opt 178 cv-qualifier-seq-opt %empty [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 179 | cv-qualifier-seq CONST shift, and go to state 15 VOLATILE shift, and go to state 16 CONST [reduce using rule 178 (cv-qualifier-seq-opt)] VOLATILE [reduce using rule 178 (cv-qualifier-seq-opt)] $default reduce using rule 178 (cv-qualifier-seq-opt) cv-qualifier go to state 606 cv-qualifier-seq go to state 607 cv-qualifier-seq-opt go to state 843

State 607

179 cv-qualifier-seq-optcv-qualifier-seq $default reduce using rule 179 (cv-qualifier-seq-opt)

State 608

592 ptr-operatorMULT attribute-specifier-seq-opt cv-qualifier-seq-opt $default reduce using rule 592 (ptr-operator)

State 609

342 identifier-list IDENTIFIER 343 | identifier-list COMMA IDENTIFIER 641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON IDENTIFIER shift, and go to state 844 identifier-list go to state 845

State 610

769 virt-specifierFINAL $default reduce using rule 769 (virt-specifier)

State 611

768 virt-specifierOVERRIDE $default reduce using rule 768 (virt-specifier)

State 612

172 ctor-initializer COLON mem-initializer-list 173 ctor-initializer-opt %empty [OPEN_BRACE] 174 | ctor-initializer 323 function-body ctor-initializer-opt compound-statement 324 | function-try-block 325 | EQ DEFAULT SEMICOLON 326 | EQ DELETE SEMICOLON 328 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 331 function-try-block TRY ctor-initializer-opt compound-statement handler-seq EQ shift, and go to state 846 COLON shift, and go to state 847 TRY shift, and go to state 848 $default reduce using rule 173 (ctor-initializer-opt) ctor-initializer go to state 849 ctor-initializer-opt go to state 850 function-body go to state 851 function-try-block go to state 852

State 613

770 virt-specifier-seqvirt-specifier $default reduce using rule 770 (virt-specifier-seq)

State 614

768 virt-specifier OVERRIDE 769 | FINAL 771 virt-specifier-seqvirt-specifier-seq virt-specifier 773 virt-specifier-seq-optvirt-specifier-seq [COMMA, EQ, SEMICOLON, COLON, OPEN_BRACE, TRY] FINAL shift, and go to state 610 OVERRIDE shift, and go to state 611 $default reduce using rule 773 (virt-specifier-seq-opt) virt-specifier go to state 853

State 615

172 ctor-initializer COLON mem-initializer-list 173 ctor-initializer-opt %empty [OPEN_BRACE] 174 | ctor-initializer 323 function-body ctor-initializer-opt compound-statement 324 | function-try-block 325 | EQ DEFAULT SEMICOLON 326 | EQ DELETE SEMICOLON 327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 331 function-try-block TRY ctor-initializer-opt compound-statement handler-seq EQ shift, and go to state 846 COLON shift, and go to state 847 TRY shift, and go to state 848 $default reduce using rule 173 (ctor-initializer-opt) ctor-initializer go to state 849 ctor-initializer-opt go to state 850 function-body go to state 854 function-try-block go to state 852

State 616

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 175 cv-qualifier CONST 176 | VOLATILE 177 cv-qualifier-seq cv-qualifier cv-qualifier-seq-opt 178 cv-qualifier-seq-opt %empty [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 179 | cv-qualifier-seq 595 ptr-operatornested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 ALIGNAS [reduce using rule 178 (cv-qualifier-seq-opt)] OPEN_SQUARE [reduce using rule 178 (cv-qualifier-seq-opt)] CONST [reduce using rule 178 (cv-qualifier-seq-opt)] VOLATILE [reduce using rule 178 (cv-qualifier-seq-opt)] $default reduce using rule 178 (cv-qualifier-seq-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 cv-qualifier go to state 606 cv-qualifier-seq go to state 607 cv-qualifier-seq-opt go to state 855

State 617

549 parameter-declaration-listparameter-declaration $default reduce using rule 549 (parameter-declaration-list)

State 618

553 parameters-and-qualifiersOPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt CLOSE_PAREN shift, and go to state 856

State 619

548 parameter-declaration-clauseparameter-declaration-list COMMA ELLIPSIS 550 parameter-declaration-listparameter-declaration-list COMMA parameter-declaration 552 parameter-declaration-list-optparameter-declaration-list [ELLIPSIS, CLOSE_PAREN] COMMA shift, and go to state 857 $default reduce using rule 552 (parameter-declaration-list-opt)

State 620

5 ELLIPSIS-opt %empty [CLOSE_PAREN] 6 | ELLIPSIS 547 parameter-declaration-clauseparameter-declaration-list-opt ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 858

State 621

160 constant-expression-optconstant-expression $default reduce using rule 160 (constant-expression-opt)

State 622

492 noptr-declaratornoptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt CLOSE_SQUARE shift, and go to state 859

State 623

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 701 trailing-return-typeDEREF type-id 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 860 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 624

212 declaratornoptr-declarator parameters-and-qualifiers trailing-return-type $default reduce using rule 212 (declarator)

State 625

36 access-specifier PRIVATE 37 | PROTECTED 38 | PUBLIC 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, COLON, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 233 empty-declaration SEMICOLON 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 404 member-declaration attribute-specifier-seq-opt decl-specifier-seq-opt member-declarator-list-opt SEMICOLON 405 | function-definition 406 | using-declaration 407 | using-enum-declaration 408 | static_assert-declaration 409 | template-declaration 410 | explicit-specialization 411 | deduction-guide 412 | alias-declaration 413 | opaque-enum-declaration 414 | empty-declaration 423 member-specification member-declaration member-specification-opt 424 | access-specifier COLON member-specification-opt 424 | access-specifier COLON member-specification-opt 425 member-specification-opt %empty [CLOSE_BRACE] 426 | member-specification 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 762 using-declaration USING using-declarator-list SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON TEMPLATE shift, and go to state 7 PRIVATE shift, and go to state 349 PROTECTED shift, and go to state 350 PUBLIC shift, and go to state 351 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 ENUM shift, and go to state 352 EXPLICIT shift, and go to state 23 STATIC_ASSERT shift, and go to state 41 IDENTIFIER reduce using rule 83 (attribute-specifier-seq-opt) IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] SEMICOLON [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 425 (member-specification-opt) ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) access-specifier go to state 353 alias-declaration go to state 354 attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 355 deduction-guide go to state 356 empty-declaration go to state 357 enum-key go to state 358 explicit-specialization go to state 359 explicit-specifier go to state 360 explicit-specifier-opt go to state 76 function-definition go to state 361 member-declaration go to state 362 member-specification go to state 363 member-specification-opt go to state 861 opaque-enum-declaration go to state 365 static_assert-declaration go to state 366 template-declaration go to state 367 template-head go to state 101 using-declaration go to state 368 using-enum-declaration go to state 369

State 626

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 11 IDENTIFIER-opt %empty [ALIGNAS, OPEN_SQUARE, COLON] 12 | IDENTIFIER 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 404 member-declarationattribute-specifier-seq-opt decl-specifier-seq-opt member-declarator-list-opt SEMICOLON 415 member-declarator declarator virt-specifier-seq-opt pure-specifier-opt 416 | declarator requires-clause 417 | declarator brace-or-equal-initializer-opt 418 | IDENTIFIER-opt attribute-specifier-seq-opt COLON constant-expression brace-or-equal-initializer-opt 419 member-declarator-list member-declarator 420 | member-declarator-list COMMA member-declarator 421 member-declarator-list-opt %empty [SEMICOLON] 422 | member-declarator-list 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 862 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] SEMICOLON reduce using rule 421 (member-declarator-list-opt) OPERATOR reduce using rule 5 (ELLIPSIS-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] COMPL reduce using rule 5 (ELLIPSIS-opt) $default reduce using rule 11 (IDENTIFIER-opt) ELLIPSIS-opt go to state 164 IDENTIFIER-opt go to state 863 class-name go to state 55 declarator go to state 864 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 member-declarator go to state 865 member-declarator-list go to state 866 member-declarator-list-opt go to state 867 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 172 ptr-declarator go to state 173 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 627

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 240 enum-head-name nested-name-specifier-opt IDENTIFIER 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] alignment-specifier go to state 165 attribute-specifier go to state 166 class-name go to state 55 decltype-specifier go to state 120 enum-head-name go to state 868 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 394 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 628

423 member-specificationmember-declaration member-specification-opt $default reduce using rule 423 (member-specification)

State 629

142 class-specifierclass-head OPEN_BRACE member-specification-opt CLOSE_BRACE $default reduce using rule 142 (class-specifier)

State 630

36 access-specifier PRIVATE 37 | PROTECTED 38 | PUBLIC 45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 102 base-specifierattribute-specifier-seq-opt class-or-decltype 103 | attribute-specifier-seq-opt VIRTUAL access-specifier-opt class-or-decltype 104 | attribute-specifier-seq-opt access-specifier VIRTUAL-opt class-or-decltype 137 class-name IDENTIFIER 138 | simple-template-id 139 class-or-decltype nested-name-specifier-opt type-name 140 | nested-name-specifier TEMPLATE simple-template-id 141 | decltype-specifier 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 VIRTUAL shift, and go to state 869 PRIVATE shift, and go to state 349 PROTECTED shift, and go to state 350 PUBLIC shift, and go to state 351 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] access-specifier go to state 870 alignment-specifier go to state 165 attribute-specifier go to state 166 class-name go to state 55 class-or-decltype go to state 871 decltype-specifier go to state 872 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 873 nested-name-specifier-opt go to state 874 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 631

5 ELLIPSIS-opt %empty [COMMA, OPEN_BRACE] 6 | ELLIPSIS 105 base-specifier-listbase-specifier ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 875

State 632

99 base-clauseCOLON base-specifier-list [OPEN_BRACE] 106 base-specifier-listbase-specifier-list COMMA base-specifier ELLIPSIS-opt COMMA shift, and go to state 876 $default reduce using rule 99 (base-clause)

State 633

143 class-virt-specifierFINAL $default reduce using rule 143 (class-virt-specifier)

State 634

145 class-virt-specifier-optclass-virt-specifier $default reduce using rule 145 (class-virt-specifier-opt)

State 635

99 base-clause COLON base-specifier-list 100 base-clause-opt %empty [OPEN_BRACE] 101 | base-clause 131 class-headclass-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt COLON shift, and go to state 370 $default reduce using rule 100 (base-clause-opt) base-clause go to state 371 base-clause-opt go to state 877

State 636

137 class-nameIDENTIFIER [COLON, OPEN_BRACE, FINAL] 229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TYPENAME, VIRTUAL, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, OPEN_SQUARE, COLON, OPEN_BRACE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, ENUM, GREATER, EXPLICIT, MULT, REQUIRES, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 695 template-nameIDENTIFIER [LESS] COLON reduce using rule 137 (class-name) COLON [reduce using rule 229 (elaborated-type-specifier)] OPEN_BRACE reduce using rule 137 (class-name) OPEN_BRACE [reduce using rule 229 (elaborated-type-specifier)] FINAL reduce using rule 137 (class-name) LESS reduce using rule 695 (template-name) $default reduce using rule 229 (elaborated-type-specifier)

State 637

133 class-head-namenested-name-specifier-opt class-name $default reduce using rule 133 (class-head-name)

State 638

138 class-namesimple-template-id $default reduce using rule 138 (class-name)

State 639

231 elaborated-type-specifierclass-key nested-name-specifier TEMPLATE-opt simple-template-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE SCOPE shift, and go to state 671 SCOPE [reduce using rule 231 (elaborated-type-specifier)] $default reduce using rule 231 (elaborated-type-specifier)

State 640

361 initializer-clauseassignment-expression $default reduce using rule 361 (initializer-clause)

State 641

362 initializer-clausebraced-init-list $default reduce using rule 362 (initializer-clause)

State 642

116 brace-or-equal-initializerEQ initializer-clause $default reduce using rule 116 (brace-or-equal-initializer)

State 643

360 initializerOPEN_PAREN expression-list CLOSE_PAREN CLOSE_PAREN shift, and go to state 878

State 644

5 ELLIPSIS-opt %empty [COMMA, CLOSE_PAREN, CLOSE_SQUARE, CLOSE_BRACE] 6 | ELLIPSIS 363 initializer-listinitializer-clause ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 879

State 645

279 expression-listinitializer-list [CLOSE_PAREN, CLOSE_SQUARE] 364 initializer-listinitializer-list COMMA initializer-clause ELLIPSIS-opt COMMA shift, and go to state 880 $default reduce using rule 279 (expression-list)

State 646

122 braced-init-listOPEN_BRACE CLOSE_BRACE $default reduce using rule 122 (braced-init-list)

State 647

227 designatorDOT IDENTIFIER IDENTIFIER shift, and go to state 881

State 648

225 designated-initializer-listdesignated-initializer-clause $default reduce using rule 225 (designated-initializer-list)

State 649

1 COMMA-opt %empty [CLOSE_BRACE] 2 | COMMA 121 braced-init-listOPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 226 designated-initializer-listdesignated-initializer-list COMMA designated-initializer-clause COMMA shift, and go to state 882 $default reduce using rule 1 (COMMA-opt) COMMA-opt go to state 883

State 650

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 224 designated-initializer-clausedesignator brace-or-equal-initializer EQ shift, and go to state 376 OPEN_BRACE shift, and go to state 378 brace-or-equal-initializer go to state 884 braced-init-list go to state 381

State 651

1 COMMA-opt %empty [CLOSE_BRACE] 2 | COMMA 120 braced-init-listOPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 364 initializer-listinitializer-list COMMA initializer-clause ELLIPSIS-opt COMMA shift, and go to state 885 $default reduce using rule 1 (COMMA-opt) COMMA-opt go to state 886

State 652

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 285 | OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list ELLIPSIS shift, and go to state 437 IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 438 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 439 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 653

163 constraint-logical-and-expressionconstraint-logical-and-expression AND_AND primary-expression 164 constraint-logical-or-expressionconstraint-logical-and-expression [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, COLON, OPEN_BRACE, CLASS, STRUCT, UNION, CONCEPT, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, ENUM, EXPLICIT, MULT, TRY, IMPORT, NAMESPACE, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE] AND_AND shift, and go to state 887 AND_AND [reduce using rule 164 (constraint-logical-or-expression)] $default reduce using rule 164 (constraint-logical-or-expression)

State 654

165 constraint-logical-or-expressionconstraint-logical-or-expression OR_OR constraint-logical-and-expression 620 requires-clauseREQUIRES constraint-logical-or-expression [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, COLON, OPEN_BRACE, CLASS, STRUCT, UNION, CONCEPT, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, ENUM, EXPLICIT, MULT, TRY, IMPORT, NAMESPACE, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE] OR_OR shift, and go to state 888 $default reduce using rule 620 (requires-clause)

State 655

162 constraint-logical-and-expressionprimary-expression $default reduce using rule 162 (constraint-logical-and-expression)

State 656

351 init-declarator-listinit-declarator-list COMMA init-declarator $default reduce using rule 351 (init-declarator-list)

State 657

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 249 enumeratorIDENTIFIER attribute-specifier-seq-opt [COMMA, EQ, CLOSE_BRACE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 $default reduce using rule 249 (enumerator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 658

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 251 enumerator-definitionenumerator EQ constant-expression 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 889 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 659

248 enum-specifierenum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 249 enumerator IDENTIFIER attribute-specifier-seq-opt 250 enumerator-definition enumerator 251 | enumerator EQ constant-expression 253 enumerator-listenumerator-list COMMA enumerator-definition IDENTIFIER shift, and go to state 387 CLOSE_BRACE shift, and go to state 890 enumerator go to state 388 enumerator-definition go to state 891

State 660

247 enum-specifierenum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE $default reduce using rule 247 (enum-specifier)

State 661

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 236 enum-baseCOLON type-specifier-seq 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 892 typedef-name go to state 108 typename-specifier go to state 109

State 662

238 enum-base-optenum-base $default reduce using rule 238 (enum-base-opt)

State 663

496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON SEMICOLON shift, and go to state 893

State 664

239 enum-headenum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt $default reduce using rule 239 (enum-head)

State 665

240 enum-head-namenested-name-specifier-opt IDENTIFIER $default reduce using rule 240 (enum-head-name)

State 666

215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON CLOSE_PAREN shift, and go to state 894

State 667

427 module-declarationEXPORT-opt MODULE module-name module-partition-opt attribute-specifier-seq-opt SEMICOLON 436 module-partition COLON module-name-qualifier-opt IDENTIFIER 437 module-partition-opt %empty [SEMICOLON, ALIGNAS, OPEN_SQUARE] 438 | module-partition COLON shift, and go to state 137 $default reduce using rule 437 (module-partition-opt) module-partition go to state 895 module-partition-opt go to state 896

State 668

583 private-module-fragmentMODULE COLON PRIVATE SEMICOLON declaration-seq-opt COLON shift, and go to state 897

State 669

585 private-module-fragment-optprivate-module-fragment $default reduce using rule 585 (private-module-fragment-opt)

State 670

705 translation-unitglobal-module-fragment-opt module-declaration declaration-seq-opt private-module-fragment-opt $default reduce using rule 705 (translation-unit)

State 671

457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE $default reduce using rule 457 (nested-name-specifier)

State 672

708 type-constraintnested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER GREATER shift, and go to state 898

State 673

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 150 concept-definitionCONCEPT concept-name EQ constraint-expression SEMICOLON 161 constraint-expression logical-or-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 constraint-expression go to state 899 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 900 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 674

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] alignment-specifier go to state 165 attribute-specifier go to state 166 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 901 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 675

685 template-argument-listtemplate-argument ELLIPSIS-opt $default reduce using rule 685 (template-argument-list)

State 676

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 682 template-argument constant-expression 683 | type-id 684 | id-expression 686 template-argument-listtemplate-argument-list COMMA template-argument ELLIPSIS-opt 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 405 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 406 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-argument go to state 902 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 411 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 677

643 simple-template-idtemplate-name LESS template-argument-list-opt GREATER $default reduce using rule 643 (simple-template-id)

State 678

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 728 type-specifier-seqtype-specifier attribute-specifier-seq-opt [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 ALIGNAS [reduce using rule 728 (type-specifier-seq)] OPEN_SQUARE [reduce using rule 728 (type-specifier-seq)] $default reduce using rule 728 (type-specifier-seq) alignment-specifier go to state 165 attribute-specifier go to state 166

State 679

729 type-specifier-seqtype-specifier type-specifier-seq $default reduce using rule 729 (type-specifier-seq)

State 680

489 noptr-abstract-pack-declaratorELLIPSIS $default reduce using rule 489 (noptr-abstract-pack-declarator)

State 681

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 681 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] $default reduce using rule 485 (noptr-abstract-declarator-opt) class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 903 ptr-abstract-declarator go to state 904 ptr-operator go to state 905 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 682

33 abstract-declarator-optabstract-declarator $default reduce using rule 33 (abstract-declarator-opt)

State 683

711 type-idtype-specifier-seq abstract-declarator-opt $default reduce using rule 711 (type-id)

State 684

31 abstract-declaratorabstract-pack-declarator $default reduce using rule 31 (abstract-declarator)

State 685

486 noptr-abstract-declarator-optnoptr-abstract-declarator [OPEN_PAREN, OPEN_SQUARE] 586 ptr-abstract-declaratornoptr-abstract-declarator [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] OPEN_PAREN reduce using rule 486 (noptr-abstract-declarator-opt) OPEN_PAREN [reduce using rule 586 (ptr-abstract-declarator)] OPEN_SQUARE reduce using rule 486 (noptr-abstract-declarator-opt) $default reduce using rule 586 (ptr-abstract-declarator)

State 686

30 abstract-declaratornoptr-abstract-declarator-opt parameters-and-qualifiers trailing-return-type 482 noptr-abstract-declaratornoptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 553 parameters-and-qualifiers OPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt OPEN_PAREN shift, and go to state 345 OPEN_SQUARE shift, and go to state 906 parameters-and-qualifiers go to state 907

State 687

34 abstract-pack-declaratornoptr-abstract-pack-declarator [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] 487 noptr-abstract-pack-declaratornoptr-abstract-pack-declarator parameters-and-qualifiers 488 | noptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 553 parameters-and-qualifiers OPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt OPEN_PAREN shift, and go to state 345 OPEN_SQUARE shift, and go to state 908 OPEN_PAREN [reduce using rule 34 (abstract-pack-declarator)] $default reduce using rule 34 (abstract-pack-declarator) parameters-and-qualifiers go to state 909

State 688

29 abstract-declaratorptr-abstract-declarator $default reduce using rule 29 (abstract-declarator)

State 689

34 abstract-pack-declarator noptr-abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 487 noptr-abstract-pack-declarator noptr-abstract-pack-declarator parameters-and-qualifiers 488 | noptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 489 | ELLIPSIS 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 587 | ptr-operator ptr-abstract-declarator-opt 588 ptr-abstract-declarator-opt %empty [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] 589 | ptr-abstract-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 680 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 681 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 ELLIPSIS [reduce using rule 588 (ptr-abstract-declarator-opt)] OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] OPEN_PAREN [reduce using rule 588 (ptr-abstract-declarator-opt)] OPEN_SQUARE reduce using rule 485 (noptr-abstract-declarator-opt) $default reduce using rule 588 (ptr-abstract-declarator-opt) abstract-pack-declarator go to state 910 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 903 noptr-abstract-pack-declarator go to state 687 ptr-abstract-declarator go to state 911 ptr-abstract-declarator-opt go to state 912 ptr-operator go to state 689 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 690

555 placeholder-type-specifiertype-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN CLOSE_PAREN shift, and go to state 913

State 691

390 linkage-specificationEXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE $default reduce using rule 390 (linkage-specification)

State 692

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 29 abstract-declarator ptr-abstract-declarator 30 | noptr-abstract-declarator-opt parameters-and-qualifiers trailing-return-type 31 | abstract-pack-declarator 32 abstract-declarator-opt %empty [COMMA, ELLIPSIS, EQ, CLOSE_PAREN, GREATER] 33 | abstract-declarator 34 abstract-pack-declarator noptr-abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 487 noptr-abstract-pack-declarator noptr-abstract-pack-declarator parameters-and-qualifiers 488 | noptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 489 | ELLIPSIS 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 543 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 914 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 915 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 ELLIPSIS [reduce using rule 32 (abstract-declarator-opt)] IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] OPEN_SQUARE reduce using rule 485 (noptr-abstract-declarator-opt) OPERATOR reduce using rule 5 (ELLIPSIS-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] COMPL reduce using rule 5 (ELLIPSIS-opt) $default reduce using rule 32 (abstract-declarator-opt) ELLIPSIS-opt go to state 164 abstract-declarator go to state 682 abstract-declarator-opt go to state 916 abstract-pack-declarator go to state 684 class-name go to state 55 declarator go to state 917 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 686 noptr-abstract-pack-declarator go to state 687 noptr-declarator go to state 172 ptr-abstract-declarator go to state 688 ptr-declarator go to state 173 ptr-operator go to state 918 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 693

11 IDENTIFIER-opt %empty [COMMA, GREATER] 12 | IDENTIFIER 719 type-parametertemplate-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt IDENTIFIER shift, and go to state 425 $default reduce using rule 11 (IDENTIFIER-opt) IDENTIFIER-opt go to state 919

State 694

720 type-parametertemplate-head type-parameter-key IDENTIFIER-opt EQ id-expression EQ shift, and go to state 920

State 695

699 template-parameter-listtemplate-parameter-list COMMA template-parameter $default reduce using rule 699 (template-parameter-list)

State 696

622 requires-clause-optrequires-clause $default reduce using rule 622 (requires-clause-opt)

State 697

691 template-headTEMPLATE LESS template-parameter-list GREATER requires-clause-opt $default reduce using rule 691 (template-head)

State 698

717 type-parametertype-constraint ELLIPSIS-opt IDENTIFIER-opt $default reduce using rule 717 (type-parameter)

State 699

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 718 type-parametertype-constraint IDENTIFIER-opt EQ type-id 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 921 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 700

715 type-parametertype-parameter-key ELLIPSIS-opt IDENTIFIER-opt $default reduce using rule 715 (type-parameter)

State 701

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 716 type-parametertype-parameter-key IDENTIFIER-opt EQ type-id 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 922 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 702

44 alias-declarationUSING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON SEMICOLON shift, and go to state 923

State 703

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [ELLIPSIS, IDENTIFIER, SCOPE, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, AND_AND, DECLTYPE, MULT] 84 | attribute-specifier-seq 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 220 defining-type-specifier-seq defining-type-specifier attribute-specifier-seq-opt 220 | defining-type-specifier attribute-specifier-seq-opt 221 | defining-type-specifier defining-type-specifier-seq 221 | defining-type-specifier defining-type-specifier-seq 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 924 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decltype-specifier go to state 63 defining-type-specifier go to state 703 defining-type-specifier-seq go to state 925 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 704

29 abstract-declarator ptr-abstract-declarator 30 | noptr-abstract-declarator-opt parameters-and-qualifiers trailing-return-type 31 | abstract-pack-declarator 32 abstract-declarator-opt %empty [SEMICOLON] 33 | abstract-declarator 34 abstract-pack-declarator noptr-abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 216 defining-type-iddefining-type-specifier-seq abstract-declarator-opt 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 487 noptr-abstract-pack-declarator noptr-abstract-pack-declarator parameters-and-qualifiers 488 | noptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 489 | ELLIPSIS 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 680 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 681 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] OPEN_SQUARE reduce using rule 485 (noptr-abstract-declarator-opt) $default reduce using rule 32 (abstract-declarator-opt) abstract-declarator go to state 682 abstract-declarator-opt go to state 926 abstract-pack-declarator go to state 684 class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 686 noptr-abstract-pack-declarator go to state 687 ptr-abstract-declarator go to state 688 ptr-operator go to state 689 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 705

765 using-declarator-listusing-declarator-list COMMA using-declarator ELLIPSIS-opt $default reduce using rule 765 (using-declarator-list)

State 706

278 expressionexpression COMMA assignment-expression 477 noexcept-expressionNOEXCEPT OPEN_PAREN expression CLOSE_PAREN COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 927

State 707

317 fold-operatorCOMMA $default reduce using rule 317 (fold-operator)

State 708

288 fold-operatorPLUS $default reduce using rule 288 (fold-operator)

State 709

289 fold-operatorMINUS $default reduce using rule 289 (fold-operator)

State 710

308 fold-operatorEQ $default reduce using rule 308 (fold-operator)

State 711

294 fold-operatorAND $default reduce using rule 294 (fold-operator)

State 712

300 fold-operatorMULT_EQ $default reduce using rule 300 (fold-operator)

State 713

301 fold-operatorDIV_EQ $default reduce using rule 301 (fold-operator)

State 714

302 fold-operatorMOD_EQ $default reduce using rule 302 (fold-operator)

State 715

298 fold-operatorPLUS_EQ $default reduce using rule 298 (fold-operator)

State 716

299 fold-operatorMINUS_EQ $default reduce using rule 299 (fold-operator)

State 717

307 fold-operatorRSHIFT_EQ $default reduce using rule 307 (fold-operator)

State 718

306 fold-operatorLSHIFT_EQ $default reduce using rule 306 (fold-operator)

State 719

304 fold-operatorAND_EQ $default reduce using rule 304 (fold-operator)

State 720

303 fold-operatorXOR_EQ $default reduce using rule 303 (fold-operator)

State 721

305 fold-operatorOR_EQ $default reduce using rule 305 (fold-operator)

State 722

315 fold-operatorAND_AND $default reduce using rule 315 (fold-operator)

State 723

316 fold-operatorOR_OR $default reduce using rule 316 (fold-operator)

State 724

309 fold-operatorEQ_EQ $default reduce using rule 309 (fold-operator)

State 725

310 fold-operatorNOT_EQ $default reduce using rule 310 (fold-operator)

State 726

293 fold-operatorXOR $default reduce using rule 293 (fold-operator)

State 727

311 fold-operatorLESS $default reduce using rule 311 (fold-operator)

State 728

312 fold-operatorGREATER $default reduce using rule 312 (fold-operator)

State 729

290 fold-operatorMULT $default reduce using rule 290 (fold-operator)

State 730

291 fold-operatorDIV $default reduce using rule 291 (fold-operator)

State 731

292 fold-operatorMOD $default reduce using rule 292 (fold-operator)

State 732

295 fold-operatorOR $default reduce using rule 295 (fold-operator)

State 733

296 fold-operatorLSHIFT $default reduce using rule 296 (fold-operator)

State 734

297 fold-operatorRSHIFT $default reduce using rule 297 (fold-operator)

State 735

313 fold-operatorLESS_EQ $default reduce using rule 313 (fold-operator)

State 736

314 fold-operatorGREATER_EQ $default reduce using rule 314 (fold-operator)

State 737

318 fold-operatorDOT_STAR $default reduce using rule 318 (fold-operator)

State 738

319 fold-operatorDEREF_STAR $default reduce using rule 319 (fold-operator)

State 739

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 928 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 740

285 fold-expressionOPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN ELLIPSIS shift, and go to state 929

State 741

578 primary-expressionOPEN_PAREN expression CLOSE_PAREN $default reduce using rule 578 (primary-expression)

State 742

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 930 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 743

635 simple-captureIDENTIFIER ELLIPSIS-opt $default reduce using rule 635 (simple-capture)

State 744

5 ELLIPSIS-opt %empty [COMMA, CLOSE_SQUARE] 6 | ELLIPSIS 636 simple-captureAND IDENTIFIER ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 931

State 745

347 init-captureAND ELLIPSIS-opt IDENTIFIER initializer IDENTIFIER shift, and go to state 932

State 746

638 simple-captureMULT THIS $default reduce using rule 638 (simple-capture)

State 747

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 346 init-captureELLIPSIS-opt IDENTIFIER initializer 359 initializer brace-or-equal-initializer 360 | OPEN_PAREN expression-list CLOSE_PAREN EQ shift, and go to state 376 OPEN_PAREN shift, and go to state 377 OPEN_BRACE shift, and go to state 378 brace-or-equal-initializer go to state 380 braced-init-list go to state 381 initializer go to state 933

State 748

5 ELLIPSIS-opt %empty [IDENTIFIER] 6 | ELLIPSIS 123 capture simple-capture 124 | init-capture 127 capture-list capture 128 | capture-list COMMA capture 346 init-capture ELLIPSIS-opt IDENTIFIER initializer 347 | AND ELLIPSIS-opt IDENTIFIER initializer 381 lambda-capturecapture-default COMMA capture-list 635 simple-capture IDENTIFIER ELLIPSIS-opt 636 | AND IDENTIFIER ELLIPSIS-opt 637 | THIS 638 | MULT THIS ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 441 THIS shift, and go to state 442 AND shift, and go to state 934 MULT shift, and go to state 445 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] ELLIPSIS-opt go to state 446 capture go to state 447 capture-list go to state 935 init-capture go to state 450 simple-capture go to state 453

State 749

5 ELLIPSIS-opt %empty [IDENTIFIER] 6 | ELLIPSIS 123 capture simple-capture 124 | init-capture 128 capture-listcapture-list COMMA capture 346 init-capture ELLIPSIS-opt IDENTIFIER initializer 347 | AND ELLIPSIS-opt IDENTIFIER initializer 635 simple-capture IDENTIFIER ELLIPSIS-opt 636 | AND IDENTIFIER ELLIPSIS-opt 637 | THIS 638 | MULT THIS ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 441 THIS shift, and go to state 442 AND shift, and go to state 934 MULT shift, and go to state 445 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] ELLIPSIS-opt go to state 446 capture go to state 936 init-capture go to state 450 simple-capture go to state 453

State 750

388 lambda-introducerOPEN_SQUARE lambda-capture-opt CLOSE_SQUARE $default reduce using rule 388 (lambda-introducer)

State 751

504 overloadable-operatorOPEN_PAREN CLOSE_PAREN $default reduce using rule 504 (overloadable-operator)

State 752

505 overloadable-operatorOPEN_SQUARE CLOSE_SQUARE $default reduce using rule 505 (overloadable-operator)

State 753

502 overloadable-operatorDELETE OPEN_SQUARE CLOSE_SQUARE CLOSE_SQUARE shift, and go to state 937

State 754

501 overloadable-operatorNEW OPEN_SQUARE CLOSE_SQUARE CLOSE_SQUARE shift, and go to state 938

State 755

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 682 template-argument constant-expression 683 | type-id 684 | id-expression 685 template-argument-list template-argument ELLIPSIS-opt 686 | template-argument-list COMMA template-argument ELLIPSIS-opt 687 template-argument-list-opt %empty [GREATER] 688 | template-argument-list 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] GREATER reduce using rule 687 (template-argument-list-opt) AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 405 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 406 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-argument go to state 408 template-argument-list go to state 409 template-argument-list-opt go to state 939 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 411 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 756

392 literal-operator-idOPERATOR string-literal IDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 734 ud-suffixIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] COMMA reduce using rule 392 (literal-operator-id) COMMA [reduce using rule 734 (ud-suffix)] CONSTEXPR reduce using rule 392 (literal-operator-id) CONSTEXPR [reduce using rule 734 (ud-suffix)] ELLIPSIS reduce using rule 392 (literal-operator-id) ELLIPSIS [reduce using rule 734 (ud-suffix)] EXPORT reduce using rule 392 (literal-operator-id) EXPORT [reduce using rule 734 (ud-suffix)] EXTERN reduce using rule 392 (literal-operator-id) EXTERN [reduce using rule 734 (ud-suffix)] IDENTIFIER reduce using rule 392 (literal-operator-id) IDENTIFIER [reduce using rule 734 (ud-suffix)] INLINE reduce using rule 392 (literal-operator-id) INLINE [reduce using rule 734 (ud-suffix)] NOEXCEPT reduce using rule 392 (literal-operator-id) NOEXCEPT [reduce using rule 734 (ud-suffix)] SCOPE reduce using rule 392 (literal-operator-id) SCOPE [reduce using rule 734 (ud-suffix)] TEMPLATE reduce using rule 392 (literal-operator-id) TEMPLATE [reduce using rule 734 (ud-suffix)] TYPENAME reduce using rule 392 (literal-operator-id) TYPENAME [reduce using rule 734 (ud-suffix)] VIRTUAL reduce using rule 392 (literal-operator-id) VIRTUAL [reduce using rule 734 (ud-suffix)] PLUS reduce using rule 392 (literal-operator-id) PLUS [reduce using rule 734 (ud-suffix)] MINUS reduce using rule 392 (literal-operator-id) MINUS [reduce using rule 734 (ud-suffix)] USING reduce using rule 392 (literal-operator-id) USING [reduce using rule 734 (ud-suffix)] EQ reduce using rule 392 (literal-operator-id) EQ [reduce using rule 734 (ud-suffix)] SEMICOLON reduce using rule 392 (literal-operator-id) SEMICOLON [reduce using rule 734 (ud-suffix)] ALIGNAS reduce using rule 392 (literal-operator-id) ALIGNAS [reduce using rule 734 (ud-suffix)] OPEN_PAREN reduce using rule 392 (literal-operator-id) OPEN_PAREN [reduce using rule 734 (ud-suffix)] CLOSE_PAREN reduce using rule 392 (literal-operator-id) CLOSE_PAREN [reduce using rule 734 (ud-suffix)] AND reduce using rule 392 (literal-operator-id) AND [reduce using rule 734 (ud-suffix)] ASM reduce using rule 392 (literal-operator-id) ASM [reduce using rule 734 (ud-suffix)] MULT_EQ reduce using rule 392 (literal-operator-id) MULT_EQ [reduce using rule 734 (ud-suffix)] DIV_EQ reduce using rule 392 (literal-operator-id) DIV_EQ [reduce using rule 734 (ud-suffix)] MOD_EQ reduce using rule 392 (literal-operator-id) MOD_EQ [reduce using rule 734 (ud-suffix)] PLUS_EQ reduce using rule 392 (literal-operator-id) PLUS_EQ [reduce using rule 734 (ud-suffix)] MINUS_EQ reduce using rule 392 (literal-operator-id) MINUS_EQ [reduce using rule 734 (ud-suffix)] RSHIFT_EQ reduce using rule 392 (literal-operator-id) RSHIFT_EQ [reduce using rule 734 (ud-suffix)] LSHIFT_EQ reduce using rule 392 (literal-operator-id) LSHIFT_EQ [reduce using rule 734 (ud-suffix)] AND_EQ reduce using rule 392 (literal-operator-id) AND_EQ [reduce using rule 734 (ud-suffix)] XOR_EQ reduce using rule 392 (literal-operator-id) XOR_EQ [reduce using rule 734 (ud-suffix)] OR_EQ reduce using rule 392 (literal-operator-id) OR_EQ [reduce using rule 734 (ud-suffix)] OPEN_SQUARE reduce using rule 392 (literal-operator-id) OPEN_SQUARE [reduce using rule 734 (ud-suffix)] CLOSE_SQUARE reduce using rule 392 (literal-operator-id) CLOSE_SQUARE [reduce using rule 734 (ud-suffix)] COLON reduce using rule 392 (literal-operator-id) COLON [reduce using rule 734 (ud-suffix)] OPEN_BRACE reduce using rule 392 (literal-operator-id) OPEN_BRACE [reduce using rule 734 (ud-suffix)] CLOSE_BRACE reduce using rule 392 (literal-operator-id) CLOSE_BRACE [reduce using rule 734 (ud-suffix)] CLASS reduce using rule 392 (literal-operator-id) CLASS [reduce using rule 734 (ud-suffix)] STRUCT reduce using rule 392 (literal-operator-id) STRUCT [reduce using rule 734 (ud-suffix)] UNION reduce using rule 392 (literal-operator-id) UNION [reduce using rule 734 (ud-suffix)] FINAL reduce using rule 392 (literal-operator-id) FINAL [reduce using rule 734 (ud-suffix)] SPACESHIP reduce using rule 392 (literal-operator-id) SPACESHIP [reduce using rule 734 (ud-suffix)] CONCEPT reduce using rule 392 (literal-operator-id) CONCEPT [reduce using rule 734 (ud-suffix)] QUERY reduce using rule 392 (literal-operator-id) QUERY [reduce using rule 734 (ud-suffix)] AND_AND reduce using rule 392 (literal-operator-id) AND_AND [reduce using rule 734 (ud-suffix)] OR_OR reduce using rule 392 (literal-operator-id) OR_OR [reduce using rule 734 (ud-suffix)] OPERATOR reduce using rule 392 (literal-operator-id) OPERATOR [reduce using rule 734 (ud-suffix)] CONST reduce using rule 392 (literal-operator-id) CONST [reduce using rule 734 (ud-suffix)] VOLATILE reduce using rule 392 (literal-operator-id) VOLATILE [reduce using rule 734 (ud-suffix)] FRIEND reduce using rule 392 (literal-operator-id) FRIEND [reduce using rule 734 (ud-suffix)] TYPEDEF reduce using rule 392 (literal-operator-id) TYPEDEF [reduce using rule 734 (ud-suffix)] CONSTEVAL reduce using rule 392 (literal-operator-id) CONSTEVAL [reduce using rule 734 (ud-suffix)] CONSTINIT reduce using rule 392 (literal-operator-id) CONSTINIT [reduce using rule 734 (ud-suffix)] DECLTYPE reduce using rule 392 (literal-operator-id) DECLTYPE [reduce using rule 734 (ud-suffix)] DEREF reduce using rule 392 (literal-operator-id) DEREF [reduce using rule 734 (ud-suffix)] DOT reduce using rule 392 (literal-operator-id) DOT [reduce using rule 734 (ud-suffix)] ENUM reduce using rule 392 (literal-operator-id) ENUM [reduce using rule 734 (ud-suffix)] EQ_EQ reduce using rule 392 (literal-operator-id) EQ_EQ [reduce using rule 734 (ud-suffix)] NOT_EQ reduce using rule 392 (literal-operator-id) NOT_EQ [reduce using rule 734 (ud-suffix)] XOR reduce using rule 392 (literal-operator-id) XOR [reduce using rule 734 (ud-suffix)] LESS reduce using rule 392 (literal-operator-id) LESS [reduce using rule 734 (ud-suffix)] GREATER reduce using rule 392 (literal-operator-id) GREATER [reduce using rule 734 (ud-suffix)] EXPLICIT reduce using rule 392 (literal-operator-id) EXPLICIT [reduce using rule 734 (ud-suffix)] MULT reduce using rule 392 (literal-operator-id) MULT [reduce using rule 734 (ud-suffix)] DIV reduce using rule 392 (literal-operator-id) DIV [reduce using rule 734 (ud-suffix)] MOD reduce using rule 392 (literal-operator-id) MOD [reduce using rule 734 (ud-suffix)] OR reduce using rule 392 (literal-operator-id) OR [reduce using rule 734 (ud-suffix)] LSHIFT reduce using rule 392 (literal-operator-id) LSHIFT [reduce using rule 734 (ud-suffix)] RSHIFT reduce using rule 392 (literal-operator-id) RSHIFT [reduce using rule 734 (ud-suffix)] LESS_EQ reduce using rule 392 (literal-operator-id) LESS_EQ [reduce using rule 734 (ud-suffix)] GREATER_EQ reduce using rule 392 (literal-operator-id) GREATER_EQ [reduce using rule 734 (ud-suffix)] DOT_STAR reduce using rule 392 (literal-operator-id) DOT_STAR [reduce using rule 734 (ud-suffix)] DEREF_STAR reduce using rule 392 (literal-operator-id) DEREF_STAR [reduce using rule 734 (ud-suffix)] TRY reduce using rule 392 (literal-operator-id) TRY [reduce using rule 734 (ud-suffix)] IMPORT reduce using rule 392 (literal-operator-id) IMPORT [reduce using rule 734 (ud-suffix)] NAMESPACE reduce using rule 392 (literal-operator-id) NAMESPACE [reduce using rule 734 (ud-suffix)] REQUIRES reduce using rule 392 (literal-operator-id) REQUIRES [reduce using rule 734 (ud-suffix)] COMPL reduce using rule 392 (literal-operator-id) COMPL [reduce using rule 734 (ud-suffix)] PLUS_PLUS reduce using rule 392 (literal-operator-id) PLUS_PLUS [reduce using rule 734 (ud-suffix)] MINUS_MINUS reduce using rule 392 (literal-operator-id) MINUS_MINUS [reduce using rule 734 (ud-suffix)] AUTO reduce using rule 392 (literal-operator-id) AUTO [reduce using rule 734 (ud-suffix)] CHAR reduce using rule 392 (literal-operator-id) CHAR [reduce using rule 734 (ud-suffix)] CHAR8_T reduce using rule 392 (literal-operator-id) CHAR8_T [reduce using rule 734 (ud-suffix)] CHAR16_T reduce using rule 392 (literal-operator-id) CHAR16_T [reduce using rule 734 (ud-suffix)] CHAR32_T reduce using rule 392 (literal-operator-id) CHAR32_T [reduce using rule 734 (ud-suffix)] WCHAR_T reduce using rule 392 (literal-operator-id) WCHAR_T [reduce using rule 734 (ud-suffix)] BOOL reduce using rule 392 (literal-operator-id) BOOL [reduce using rule 734 (ud-suffix)] SHORT reduce using rule 392 (literal-operator-id) SHORT [reduce using rule 734 (ud-suffix)] INT reduce using rule 392 (literal-operator-id) INT [reduce using rule 734 (ud-suffix)] LONG reduce using rule 392 (literal-operator-id) LONG [reduce using rule 734 (ud-suffix)] SIGNED reduce using rule 392 (literal-operator-id) SIGNED [reduce using rule 734 (ud-suffix)] UNSIGNED reduce using rule 392 (literal-operator-id) UNSIGNED [reduce using rule 734 (ud-suffix)] FLOAT reduce using rule 392 (literal-operator-id) FLOAT [reduce using rule 734 (ud-suffix)] DOUBLE reduce using rule 392 (literal-operator-id) DOUBLE [reduce using rule 734 (ud-suffix)] VOID reduce using rule 392 (literal-operator-id) VOID [reduce using rule 734 (ud-suffix)] STATIC_ASSERT reduce using rule 392 (literal-operator-id) STATIC_ASSERT [reduce using rule 734 (ud-suffix)] STATIC reduce using rule 392 (literal-operator-id) STATIC [reduce using rule 734 (ud-suffix)] THREAD_LOCAL reduce using rule 392 (literal-operator-id) THREAD_LOCAL [reduce using rule 734 (ud-suffix)] MUTABLE reduce using rule 392 (literal-operator-id) MUTABLE [reduce using rule 734 (ud-suffix)] OVERRIDE reduce using rule 392 (literal-operator-id) OVERRIDE [reduce using rule 734 (ud-suffix)] $default reduce using rule 392 (literal-operator-id)

State 757

761 user-defined-string-literalstring-literal ud-suffix $default reduce using rule 761 (user-defined-string-literal)

State 758

168 conversion-declarator-optconversion-declarator $default reduce using rule 168 (conversion-declarator-opt)

State 759

170 conversion-type-idtype-specifier-seq conversion-declarator-opt $default reduce using rule 170 (conversion-type-id)

State 760

137 class-name IDENTIFIER 138 | simple-template-id 166 conversion-declarator ptr-operator conversion-declarator-opt 166 | ptr-operator conversion-declarator-opt 167 conversion-declarator-opt %empty [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] 168 | conversion-declarator 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 167 (conversion-declarator-opt)] SCOPE [reduce using rule 167 (conversion-declarator-opt)] AND [reduce using rule 167 (conversion-declarator-opt)] AND_AND [reduce using rule 167 (conversion-declarator-opt)] DECLTYPE [reduce using rule 167 (conversion-declarator-opt)] MULT [reduce using rule 167 (conversion-declarator-opt)] $default reduce using rule 167 (conversion-declarator-opt) class-name go to state 55 conversion-declarator go to state 758 conversion-declarator-opt go to state 940 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 ptr-operator go to state 760 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 761

615 requirement-parameter-listOPEN_PAREN parameter-declaration-clause CLOSE_PAREN CLOSE_PAREN shift, and go to state 941

State 762

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 148 compound-requirement OPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 461 nested-requirement REQUIRES constraint-expression SEMICOLON 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 610 requirement simple-requirement 611 | type-requirement 612 | compound-requirement 613 | nested-requirement 614 requirement-bodyOPEN_BRACE requirement-seq CLOSE_BRACE 618 requirement-seq requirement 619 | requirement-seq requirement 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 642 simple-requirement expression SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 723 type-requirement TYPENAME nested-name-specifier-opt type-name SEMICOLON 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 942 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 943 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 944 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 compound-requirement go to state 945 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 946 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 nested-requirement go to state 947 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requirement go to state 948 requirement-seq go to state 949 requires-expression go to state 295 shift-expression go to state 296 simple-requirement go to state 950 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-requirement go to state 951 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 763

623 requires-expressionREQUIRES requirement-parameter-list-opt requirement-body $default reduce using rule 623 (requires-expression)

State 764

570 postfix-expressionDYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN GREATER shift, and go to state 952

State 765

571 postfix-expressionSTATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN GREATER shift, and go to state 953

State 766

572 postfix-expressionREINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN GREATER shift, and go to state 954

State 767

573 postfix-expressionCONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN GREATER shift, and go to state 955

State 768

278 expressionexpression COMMA assignment-expression 574 postfix-expressionTYPEID OPEN_PAREN expression CLOSE_PAREN COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 956

State 769

575 postfix-expressionTYPEID OPEN_PAREN type-id CLOSE_PAREN CLOSE_PAREN shift, and go to state 957

State 770

742 unary-expressionSIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN IDENTIFIER shift, and go to state 958

State 771

741 unary-expressionSIZEOF OPEN_PAREN type-id CLOSE_PAREN CLOSE_PAREN shift, and go to state 959

State 772

743 unary-expressionALIGNOF OPEN_PAREN type-id CLOSE_PAREN CLOSE_PAREN shift, and go to state 960

State 773

5 ELLIPSIS-opt %empty [IDENTIFIER] 6 | ELLIPSIS 123 capture simple-capture 124 | init-capture 125 capture-default AND 126 | EQ 127 capture-list capture 128 | capture-list COMMA capture 223 delete-expressionSCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 346 init-capture ELLIPSIS-opt IDENTIFIER initializer 347 | AND ELLIPSIS-opt IDENTIFIER initializer 379 lambda-capture capture-default 380 | capture-list 381 | capture-default COMMA capture-list 382 lambda-capture-opt %empty [CLOSE_SQUARE] 383 | lambda-capture 388 lambda-introducerOPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 635 simple-capture IDENTIFIER ELLIPSIS-opt 636 | AND IDENTIFIER ELLIPSIS-opt 637 | THIS 638 | MULT THIS ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 441 THIS shift, and go to state 442 EQ shift, and go to state 443 AND shift, and go to state 444 CLOSE_SQUARE shift, and go to state 961 MULT shift, and go to state 445 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] CLOSE_SQUARE [reduce using rule 382 (lambda-capture-opt)] ELLIPSIS-opt go to state 446 capture go to state 447 capture-default go to state 448 capture-list go to state 449 init-capture go to state 450 lambda-capture go to state 451 lambda-capture-opt go to state 452 simple-capture go to state 453

State 774

222 delete-expressionSCOPE-opt DELETE cast-expression $default reduce using rule 222 (delete-expression)

State 775

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 279 expression-list initializer-list 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 472 new-placementOPEN_PAREN expression-list CLOSE_PAREN 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression-list go to state 962 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 645 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 776

474 new-placement-optnew-placement $default reduce using rule 474 (new-placement-opt)

State 777

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expressionSCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 475 new-type-id type-specifier-seq new-declarator-opt 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 OPEN_PAREN shift, and go to state 963 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 new-type-id go to state 964 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 965 typedef-name go to state 108 typename-specifier go to state 109

State 778

42 additive-expressionadditive-expression PLUS multiplicative-expression [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] 440 multiplicative-expressionmultiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression MULT shift, and go to state 557 DIV shift, and go to state 558 MOD shift, and go to state 559 $default reduce using rule 42 (additive-expression)

State 779

43 additive-expressionadditive-expression MINUS multiplicative-expression [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] 440 multiplicative-expressionmultiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression MULT shift, and go to state 557 DIV shift, and go to state 558 MOD shift, and go to state 559 $default reduce using rule 43 (additive-expression)

State 780

48 and-expressionand-expression AND equality-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, XOR, GREATER, OR] 257 equality-expressionequality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression EQ_EQ shift, and go to state 529 NOT_EQ shift, and go to state 530 $default reduce using rule 48 (and-expression)

State 781

147 compare-expressioncompare-expression SPACESHIP shift-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LESS_EQ, GREATER_EQ] 633 shift-expressionshift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression LSHIFT shift, and go to state 574 RSHIFT shift, and go to state 575 $default reduce using rule 147 (compare-expression)

State 782

257 equality-expressionequality-expression EQ_EQ relational-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, GREATER, OR] 606 relational-expressionrelational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression LESS shift, and go to state 570 GREATER shift, and go to state 571 LESS_EQ shift, and go to state 572 GREATER_EQ shift, and go to state 573 GREATER [reduce using rule 257 (equality-expression)] $default reduce using rule 257 (equality-expression)

State 783

258 equality-expressionequality-expression NOT_EQ relational-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, GREATER, OR] 606 relational-expressionrelational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression LESS shift, and go to state 570 GREATER shift, and go to state 571 LESS_EQ shift, and go to state 572 GREATER_EQ shift, and go to state 573 GREATER [reduce using rule 258 (equality-expression)] $default reduce using rule 258 (equality-expression)

State 784

48 and-expressionand-expression AND equality-expression 263 exclusive-or-expressionexclusive-or-expression XOR and-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, XOR, GREATER, OR] AND shift, and go to state 527 $default reduce using rule 263 (exclusive-or-expression)

State 785

278 expressionexpression COMMA assignment-expression $default reduce using rule 278 (expression)

State 786

263 exclusive-or-expressionexclusive-or-expression XOR and-expression 345 inclusive-or-expressioninclusive-or-expression OR exclusive-or-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, GREATER, OR] XOR shift, and go to state 531 $default reduce using rule 345 (inclusive-or-expression)

State 787

385 lambda-declaratorOPEN_PAREN parameter-declaration-clause CLOSE_PAREN lambda-specifiers requires-clause-opt CLOSE_PAREN shift, and go to state 966

State 788

387 lambda-expressionlambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 699 template-parameter-listtemplate-parameter-list COMMA template-parameter COMMA shift, and go to state 423 GREATER shift, and go to state 967

State 789

478 noexcept-specifierNOEXCEPT OPEN_PAREN constant-expression CLOSE_PAREN 479 | NOEXCEPT [COMMA, ELLIPSIS, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, DEREF, GREATER, TRY, REQUIRES, OVERRIDE] OPEN_PAREN shift, and go to state 968 OPEN_PAREN [reduce using rule 479 (noexcept-specifier)] $default reduce using rule 479 (noexcept-specifier)

State 790

481 noexcept-specifier-optnoexcept-specifier $default reduce using rule 481 (noexcept-specifier-opt)

State 791

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 389 lambda-specifiersdecl-specifier-seq-opt noexcept-specifier-opt attribute-specifier-seq-opt trailing-return-type-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 969

State 792

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 149 compound-statementOPEN_BRACE statement-seq-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 671 statement-seq statement 672 | statement-seq statement 673 statement-seq-opt %empty [CLOSE_BRACE] 674 | statement-seq 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 673 (statement-seq-opt) CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 976 statement-seq go to state 977 statement-seq-opt go to state 978 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 793

386 lambda-expressionlambda-introducer lambda-declarator compound-statement $default reduce using rule 386 (lambda-expression)

State 794

694 template-idliteral-operator-id LESS template-argument-list-opt GREATER GREATER shift, and go to state 979

State 795

345 inclusive-or-expressioninclusive-or-expression OR exclusive-or-expression 395 logical-and-expressionlogical-and-expression AND_AND inclusive-or-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, GREATER] OR shift, and go to state 534 $default reduce using rule 395 (logical-and-expression)

State 796

157 conditional-expressionlogical-or-expression QUERY expression COLON assignment-expression 278 expressionexpression COMMA assignment-expression COMMA shift, and go to state 532 COLON shift, and go to state 980

State 797

395 logical-and-expressionlogical-and-expression AND_AND inclusive-or-expression 397 logical-or-expressionlogical-or-expression OR_OR logical-and-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, OR_OR, GREATER] AND_AND shift, and go to state 542 $default reduce using rule 397 (logical-or-expression)

State 798

53 assignment-expressionlogical-or-expression assignment-operator initializer-clause $default reduce using rule 53 (assignment-expression)

State 799

440 multiplicative-expressionmultiplicative-expression MULT pm-expression [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] 557 pm-expressionpm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression DOT_STAR shift, and go to state 562 DEREF_STAR shift, and go to state 563 $default reduce using rule 440 (multiplicative-expression)

State 800

441 multiplicative-expressionmultiplicative-expression DIV pm-expression [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] 557 pm-expressionpm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression DOT_STAR shift, and go to state 562 DEREF_STAR shift, and go to state 563 $default reduce using rule 441 (multiplicative-expression)

State 801

442 multiplicative-expressionmultiplicative-expression MOD pm-expression [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] 557 pm-expressionpm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression DOT_STAR shift, and go to state 562 DEREF_STAR shift, and go to state 563 $default reduce using rule 442 (multiplicative-expression)

State 802

695 template-nameIDENTIFIER [LESS] 754 unqualified-idIDENTIFIER [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] LESS reduce using rule 695 (template-name) LESS [reduce using rule 754 (unqualified-id)] $default reduce using rule 754 (unqualified-id)

State 803

457 nested-name-specifiernested-name-specifier TEMPLATE-opt simple-template-id SCOPE 692 template-idsimple-template-id [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, PLUS, MINUS, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, ASM, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, FINAL, SPACESHIP, CONCEPT, QUERY, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, DOT, ENUM, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, EXPLICIT, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, TRY, IMPORT, NAMESPACE, REQUIRES, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, OVERRIDE] SCOPE shift, and go to state 671 SCOPE [reduce using rule 692 (template-id)] $default reduce using rule 692 (template-id)

State 804

599 qualified-idnested-name-specifier TEMPLATE-opt unqualified-id $default reduce using rule 599 (qualified-id)

State 805

693 template-idoperator-function-id LESS template-argument-list-opt GREATER GREATER shift, and go to state 981

State 806

557 pm-expressionpm-expression DOT_STAR cast-expression $default reduce using rule 557 (pm-expression)

State 807

558 pm-expressionpm-expression DEREF_STAR cast-expression $default reduce using rule 558 (pm-expression)

State 808

281 expression-list-optexpression-list $default reduce using rule 281 (expression-list-opt)

State 809

561 postfix-expressionpostfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 982

State 810

560 postfix-expressionpostfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE CLOSE_SQUARE shift, and go to state 983

State 811

137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 340 id-expression unqualified-id 341 | qualified-id 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 567 postfix-expressionpostfix-expression DEREF TEMPLATE-opt id-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 SCOPE shift, and go to state 6 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 COMPL shift, and go to state 334 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 120 enum-name go to state 71 id-expression go to state 984 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 336 operator-function-id go to state 289 qualified-id go to state 293 simple-template-id go to state 297 template-id go to state 299 template-name go to state 102 type-name go to state 106 typedef-name go to state 108 unqualified-id go to state 304

State 812

137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 340 id-expression unqualified-id 341 | qualified-id 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 566 postfix-expressionpostfix-expression DOT TEMPLATE-opt id-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 SCOPE shift, and go to state 6 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 COMPL shift, and go to state 334 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 120 enum-name go to state 71 id-expression go to state 985 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 336 operator-function-id go to state 289 qualified-id go to state 293 simple-template-id go to state 297 template-id go to state 299 template-name go to state 102 type-name go to state 106 typedef-name go to state 108 unqualified-id go to state 304

State 813

147 compare-expressioncompare-expression SPACESHIP shift-expression 606 relational-expressionrelational-expression LESS compare-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LESS_EQ, GREATER_EQ] SPACESHIP shift, and go to state 528 $default reduce using rule 606 (relational-expression)

State 814

147 compare-expressioncompare-expression SPACESHIP shift-expression 607 relational-expressionrelational-expression GREATER compare-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LESS_EQ, GREATER_EQ] SPACESHIP shift, and go to state 528 $default reduce using rule 607 (relational-expression)

State 815

147 compare-expressioncompare-expression SPACESHIP shift-expression 608 relational-expressionrelational-expression LESS_EQ compare-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LESS_EQ, GREATER_EQ] SPACESHIP shift, and go to state 528 $default reduce using rule 608 (relational-expression)

State 816

147 compare-expressioncompare-expression SPACESHIP shift-expression 609 relational-expressionrelational-expression GREATER_EQ compare-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LESS_EQ, GREATER_EQ] SPACESHIP shift, and go to state 528 $default reduce using rule 609 (relational-expression)

State 817

42 additive-expressionadditive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 633 shift-expressionshift-expression LSHIFT additive-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] PLUS shift, and go to state 525 MINUS shift, and go to state 526 $default reduce using rule 633 (shift-expression)

State 818

42 additive-expressionadditive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 634 shift-expressionshift-expression RSHIFT additive-expression [COMMA, ELLIPSIS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ] PLUS shift, and go to state 525 MINUS shift, and go to state 526 $default reduce using rule 634 (shift-expression)

State 819

562 postfix-expressionsimple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 986

State 820

563 postfix-expressiontypename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 987

State 821

444 namespace-aliasIDENTIFIER [SEMICOLON] 450 namespace-nameIDENTIFIER [SEMICOLON] SEMICOLON reduce using rule 444 (namespace-alias) SEMICOLON [reduce using rule 450 (namespace-name)] $default reduce using rule 444 (namespace-alias)

State 822

600 qualified-namespace-specifiernested-name-specifier-opt namespace-name $default reduce using rule 600 (qualified-namespace-specifier)

State 823

445 namespace-alias-definitionNAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON $default reduce using rule 445 (namespace-alias-definition)

State 824

235 enclosing-namespace-specifierenclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER [SCOPE] 460 nested-namespace-definitionNAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE OPEN_BRACE shift, and go to state 988 $default reduce using rule 235 (enclosing-namespace-specifier)

State 825

676 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON CLOSE_PAREN shift, and go to state 989

State 826

675 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON $default reduce using rule 675 (static_assert-declaration)

State 827

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [CLOSE_BRACE] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 443 | INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 446 namespace-body declaration-seq-opt 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 208 (declaration-seq-opt) CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 828 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-body go to state 990 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 828

446 namespace-bodydeclaration-seq-opt $default reduce using rule 446 (namespace-body)

State 829

753 unnamed-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE CLOSE_BRACE shift, and go to state 991

State 830

766 using-directiveattribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON SEMICOLON shift, and go to state 992

State 831

46 alignment-specifierALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 993

State 832

45 alignment-specifierALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 994

State 833

49 asm-declarationattribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON SEMICOLON shift, and go to state 995

State 834

76 attribute-namespaceIDENTIFIER $default reduce using rule 76 (attribute-namespace)

State 835

87 attribute-using-prefixUSING attribute-namespace COLON COLON shift, and go to state 996

State 836

76 attribute-namespaceIDENTIFIER [SCOPE] 85 attribute-tokenIDENTIFIER [COMMA, ELLIPSIS, OPEN_PAREN, CLOSE_SQUARE] SCOPE reduce using rule 76 (attribute-namespace) $default reduce using rule 85 (attribute-token)

State 837

74 attribute-listattribute ELLIPSIS 78 attribute-optattribute [COMMA, CLOSE_SQUARE] ELLIPSIS shift, and go to state 997 $default reduce using rule 78 (attribute-opt)

State 838

73 attribute-listattribute-list COMMA attribute-opt 75 | attribute-list COMMA attribute ELLIPSIS 80 attribute-specifierOPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE COMMA shift, and go to state 998 CLOSE_SQUARE shift, and go to state 999

State 839

79 attribute-scoped-tokenattribute-namespace SCOPE IDENTIFIER SCOPE shift, and go to state 1000

State 840

72 attribute-listattribute-opt $default reduce using rule 72 (attribute-list)

State 841

86 attribute-tokenattribute-scoped-token $default reduce using rule 86 (attribute-token)

State 842

67 attributeattribute-token attribute-argument-clause-opt 68 attribute-argument-clause OPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 69 attribute-argument-clause-opt %empty [COMMA, ELLIPSIS, CLOSE_SQUARE] 70 | attribute-argument-clause OPEN_PAREN shift, and go to state 1001 $default reduce using rule 69 (attribute-argument-clause-opt) attribute-argument-clause go to state 1002 attribute-argument-clause-opt go to state 1003

State 843

177 cv-qualifier-seqcv-qualifier cv-qualifier-seq-opt $default reduce using rule 177 (cv-qualifier-seq)

State 844

342 identifier-listIDENTIFIER $default reduce using rule 342 (identifier-list)

State 845

343 identifier-listidentifier-list COMMA IDENTIFIER 641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON COMMA shift, and go to state 1004 CLOSE_SQUARE shift, and go to state 1005

State 846

325 function-bodyEQ DEFAULT SEMICOLON 326 | EQ DELETE SEMICOLON DELETE shift, and go to state 1006 DEFAULT shift, and go to state 1007

State 847

137 class-name IDENTIFIER 138 | simple-template-id 139 class-or-decltype nested-name-specifier-opt type-name 140 | nested-name-specifier TEMPLATE simple-template-id 141 | decltype-specifier 172 ctor-initializerCOLON mem-initializer-list 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 398 mem-initializer mem-initializer-id OPEN_PAREN expression-list-opt CLOSE_PAREN 399 | mem-initializer-id braced-init-list 400 mem-initializer-id class-or-decltype 401 | IDENTIFIER 402 mem-initializer-list mem-initializer ELLIPSIS-opt 403 | mem-initializer-list COMMA mem-initializer ELLIPSIS-opt 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 1008 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 class-or-decltype go to state 1009 decltype-specifier go to state 872 enum-name go to state 71 mem-initializer go to state 1010 mem-initializer-id go to state 1011 mem-initializer-list go to state 1012 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 873 nested-name-specifier-opt go to state 874 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 848

172 ctor-initializer COLON mem-initializer-list 173 ctor-initializer-opt %empty [OPEN_BRACE] 174 | ctor-initializer 331 function-try-blockTRY ctor-initializer-opt compound-statement handler-seq COLON shift, and go to state 847 $default reduce using rule 173 (ctor-initializer-opt) ctor-initializer go to state 849 ctor-initializer-opt go to state 1013

State 849

174 ctor-initializer-optctor-initializer $default reduce using rule 174 (ctor-initializer-opt)

State 850

149 compound-statement OPEN_BRACE statement-seq-opt CLOSE_BRACE 323 function-bodyctor-initializer-opt compound-statement OPEN_BRACE shift, and go to state 792 compound-statement go to state 1014

State 851

328 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body $default reduce using rule 328 (function-definition)

State 852

324 function-bodyfunction-try-block $default reduce using rule 324 (function-body)

State 853

771 virt-specifier-seqvirt-specifier-seq virt-specifier $default reduce using rule 771 (virt-specifier-seq)

State 854

327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body $default reduce using rule 327 (function-definition)

State 855

595 ptr-operatornested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt $default reduce using rule 595 (ptr-operator)

State 856

175 cv-qualifier CONST 176 | VOLATILE 177 cv-qualifier-seq cv-qualifier cv-qualifier-seq-opt 178 cv-qualifier-seq-opt %empty [COMMA, ELLIPSIS, NOEXCEPT, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, AND, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, AND_AND, DEREF, GREATER, TRY, REQUIRES, OVERRIDE] 179 | cv-qualifier-seq 553 parameters-and-qualifiersOPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt CONST shift, and go to state 15 VOLATILE shift, and go to state 16 $default reduce using rule 178 (cv-qualifier-seq-opt) cv-qualifier go to state 606 cv-qualifier-seq go to state 607 cv-qualifier-seq-opt go to state 1015

State 857

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 548 parameter-declaration-clauseparameter-declaration-list COMMA ELLIPSIS 550 parameter-declaration-listparameter-declaration-list COMMA parameter-declaration ELLIPSIS shift, and go to state 1016 $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 parameter-declaration go to state 1017

State 858

547 parameter-declaration-clauseparameter-declaration-list-opt ELLIPSIS-opt $default reduce using rule 547 (parameter-declaration-clause)

State 859

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 492 noptr-declaratornoptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1018

State 860

701 trailing-return-typeDEREF type-id $default reduce using rule 701 (trailing-return-type)

State 861

424 member-specificationaccess-specifier COLON member-specification-opt $default reduce using rule 424 (member-specification)

State 862

12 IDENTIFIER-optIDENTIFIER [ALIGNAS, OPEN_SQUARE, COLON] 137 class-nameIDENTIFIER [SCOPE] 246 enum-nameIDENTIFIER [SCOPE] 444 namespace-aliasIDENTIFIER [SCOPE] 450 namespace-nameIDENTIFIER [SCOPE] 695 template-nameIDENTIFIER [LESS] 730 typedef-nameIDENTIFIER [SCOPE] SCOPE reduce using rule 137 (class-name) SCOPE [reduce using rule 246 (enum-name)] SCOPE [reduce using rule 444 (namespace-alias)] SCOPE [reduce using rule 450 (namespace-name)] SCOPE [reduce using rule 730 (typedef-name)] LESS reduce using rule 695 (template-name) $default reduce using rule 12 (IDENTIFIER-opt)

State 863

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 418 member-declaratorIDENTIFIER-opt attribute-specifier-seq-opt COLON constant-expression brace-or-equal-initializer-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1019

State 864

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 118 brace-or-equal-initializer-opt %empty [COMMA, SEMICOLON] 119 | brace-or-equal-initializer 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 415 member-declaratordeclarator virt-specifier-seq-opt pure-specifier-opt 416 | declarator requires-clause 417 | declarator brace-or-equal-initializer-opt 620 requires-clause REQUIRES constraint-logical-or-expression 768 virt-specifier OVERRIDE 769 | FINAL 770 virt-specifier-seq virt-specifier 771 | virt-specifier-seq virt-specifier 772 virt-specifier-seq-opt %empty [COMMA, EQ, SEMICOLON, COLON, OPEN_BRACE, TRY] 773 | virt-specifier-seq EQ shift, and go to state 376 OPEN_BRACE shift, and go to state 378 FINAL shift, and go to state 610 REQUIRES shift, and go to state 379 OVERRIDE shift, and go to state 611 COMMA reduce using rule 118 (brace-or-equal-initializer-opt) COMMA [reduce using rule 772 (virt-specifier-seq-opt)] EQ [reduce using rule 772 (virt-specifier-seq-opt)] SEMICOLON reduce using rule 118 (brace-or-equal-initializer-opt) SEMICOLON [reduce using rule 772 (virt-specifier-seq-opt)] COLON reduce using rule 772 (virt-specifier-seq-opt) OPEN_BRACE [reduce using rule 772 (virt-specifier-seq-opt)] TRY reduce using rule 772 (virt-specifier-seq-opt) $default reduce using rule 118 (brace-or-equal-initializer-opt) brace-or-equal-initializer go to state 1020 brace-or-equal-initializer-opt go to state 1021 braced-init-list go to state 381 requires-clause go to state 1022 virt-specifier go to state 613 virt-specifier-seq go to state 614 virt-specifier-seq-opt go to state 1023

State 865

419 member-declarator-listmember-declarator $default reduce using rule 419 (member-declarator-list)

State 866

420 member-declarator-listmember-declarator-list COMMA member-declarator 422 member-declarator-list-optmember-declarator-list [SEMICOLON] COMMA shift, and go to state 1024 $default reduce using rule 422 (member-declarator-list-opt)

State 867

404 member-declarationattribute-specifier-seq-opt decl-specifier-seq-opt member-declarator-list-opt SEMICOLON SEMICOLON shift, and go to state 1025

State 868

236 enum-base COLON type-specifier-seq 237 enum-base-opt %empty [SEMICOLON] 238 | enum-base 496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON COLON shift, and go to state 661 $default reduce using rule 237 (enum-base-opt) enum-base go to state 662 enum-base-opt go to state 663

State 869

36 access-specifier PRIVATE 37 | PROTECTED 38 | PUBLIC 39 access-specifier-opt %empty [IDENTIFIER, SCOPE, DECLTYPE] 40 | access-specifier 103 base-specifierattribute-specifier-seq-opt VIRTUAL access-specifier-opt class-or-decltype PRIVATE shift, and go to state 349 PROTECTED shift, and go to state 350 PUBLIC shift, and go to state 351 $default reduce using rule 39 (access-specifier-opt) access-specifier go to state 1026 access-specifier-opt go to state 1027

State 870

27 VIRTUAL-opt %empty [IDENTIFIER, SCOPE, DECLTYPE] 28 | VIRTUAL 104 base-specifierattribute-specifier-seq-opt access-specifier VIRTUAL-opt class-or-decltype VIRTUAL shift, and go to state 1028 $default reduce using rule 27 (VIRTUAL-opt) VIRTUAL-opt go to state 1029

State 871

102 base-specifierattribute-specifier-seq-opt class-or-decltype $default reduce using rule 102 (base-specifier)

State 872

141 class-or-decltypedecltype-specifier [COMMA, ELLIPSIS, OPEN_PAREN, OPEN_BRACE] 455 nested-name-specifierdecltype-specifier SCOPE SCOPE shift, and go to state 188 $default reduce using rule 141 (class-or-decltype)

State 873

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 140 class-or-decltypenested-name-specifier TEMPLATE simple-template-id 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 459 nested-name-specifier-optnested-name-specifier [IDENTIFIER] IDENTIFIER shift, and go to state 197 TEMPLATE shift, and go to state 1030 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] IDENTIFIER [reduce using rule 459 (nested-name-specifier-opt)] TEMPLATE-opt go to state 199

State 874

137 class-name IDENTIFIER 138 | simple-template-id 139 class-or-decltypenested-name-specifier-opt type-name 246 enum-name IDENTIFIER 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 505 class-name go to state 55 enum-name go to state 71 simple-template-id go to state 96 template-name go to state 102 type-name go to state 1031 typedef-name go to state 108

State 875

105 base-specifier-listbase-specifier ELLIPSIS-opt $default reduce using rule 105 (base-specifier-list)

State 876

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 102 base-specifier attribute-specifier-seq-opt class-or-decltype 103 | attribute-specifier-seq-opt VIRTUAL access-specifier-opt class-or-decltype 104 | attribute-specifier-seq-opt access-specifier VIRTUAL-opt class-or-decltype 106 base-specifier-listbase-specifier-list COMMA base-specifier ELLIPSIS-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 630 base-specifier go to state 1032

State 877

131 class-headclass-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt $default reduce using rule 131 (class-head)

State 878

360 initializerOPEN_PAREN expression-list CLOSE_PAREN $default reduce using rule 360 (initializer)

State 879

363 initializer-listinitializer-clause ELLIPSIS-opt $default reduce using rule 363 (initializer-list)

State 880

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 364 initializer-listinitializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 1033 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 881

227 designatorDOT IDENTIFIER $default reduce using rule 227 (designator)

State 882

2 COMMA-optCOMMA [CLOSE_BRACE] 224 designated-initializer-clause designator brace-or-equal-initializer 226 designated-initializer-listdesignated-initializer-list COMMA designated-initializer-clause 227 designator DOT IDENTIFIER DOT shift, and go to state 647 $default reduce using rule 2 (COMMA-opt) designated-initializer-clause go to state 1034 designator go to state 650

State 883

121 braced-init-listOPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE CLOSE_BRACE shift, and go to state 1035

State 884

224 designated-initializer-clausedesignator brace-or-equal-initializer $default reduce using rule 224 (designated-initializer-clause)

State 885

2 COMMA-optCOMMA [CLOSE_BRACE] 19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 364 initializer-listinitializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_BRACE reduce using rule 2 (COMMA-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 1033 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 886

120 braced-init-listOPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE CLOSE_BRACE shift, and go to state 1036

State 887

137 class-name IDENTIFIER 138 | simple-template-id 163 constraint-logical-and-expressionconstraint-logical-and-expression AND_AND primary-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 SCOPE shift, and go to state 6 THIS shift, and go to state 241 OPEN_PAREN shift, and go to state 652 OPEN_SQUARE shift, and go to state 246 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 REQUIRES shift, and go to state 250 COMPL shift, and go to state 334 LITERAL shift, and go to state 259 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 120 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 336 operator-function-id go to state 289 primary-expression go to state 1037 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 template-id go to state 299 template-name go to state 102 type-name go to state 106 typedef-name go to state 108 unqualified-id go to state 304

State 888

137 class-name IDENTIFIER 138 | simple-template-id 162 constraint-logical-and-expression primary-expression 163 | constraint-logical-and-expression AND_AND primary-expression 165 constraint-logical-or-expressionconstraint-logical-or-expression OR_OR constraint-logical-and-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 SCOPE shift, and go to state 6 THIS shift, and go to state 241 OPEN_PAREN shift, and go to state 652 OPEN_SQUARE shift, and go to state 246 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 REQUIRES shift, and go to state 250 COMPL shift, and go to state 334 LITERAL shift, and go to state 259 class-name go to state 55 constraint-logical-and-expression go to state 1038 conversion-function-id go to state 272 decltype-specifier go to state 120 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 336 operator-function-id go to state 289 primary-expression go to state 655 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 template-id go to state 299 template-name go to state 102 type-name go to state 106 typedef-name go to state 108 unqualified-id go to state 304

State 889

251 enumerator-definitionenumerator EQ constant-expression $default reduce using rule 251 (enumerator-definition)

State 890

248 enum-specifierenum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE $default reduce using rule 248 (enum-specifier)

State 891

253 enumerator-listenumerator-list COMMA enumerator-definition $default reduce using rule 253 (enumerator-list)

State 892

236 enum-baseCOLON type-specifier-seq $default reduce using rule 236 (enum-base)

State 893

496 opaque-enum-declarationenum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON $default reduce using rule 496 (opaque-enum-declaration)

State 894

215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON DEREF shift, and go to state 1039

State 895

438 module-partition-optmodule-partition $default reduce using rule 438 (module-partition-opt)

State 896

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 427 module-declarationEXPORT-opt MODULE module-name module-partition-opt attribute-specifier-seq-opt SEMICOLON $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1040

State 897

583 private-module-fragmentMODULE COLON PRIVATE SEMICOLON declaration-seq-opt PRIVATE shift, and go to state 1041

State 898

708 type-constraintnested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER $default reduce using rule 708 (type-constraint)

State 899

150 concept-definitionCONCEPT concept-name EQ constraint-expression SEMICOLON SEMICOLON shift, and go to state 1042

State 900

161 constraint-expressionlogical-or-expression [SEMICOLON] 397 logical-or-expressionlogical-or-expression OR_OR logical-and-expression OR_OR shift, and go to state 555 $default reduce using rule 161 (constraint-expression)

State 901

229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER IDENTIFIER shift, and go to state 1043

State 902

5 ELLIPSIS-opt %empty [COMMA, GREATER] 6 | ELLIPSIS 686 template-argument-listtemplate-argument-list COMMA template-argument ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 1044

State 903

482 noptr-abstract-declaratornoptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 553 parameters-and-qualifiers OPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt OPEN_PAREN shift, and go to state 345 OPEN_SQUARE shift, and go to state 906 parameters-and-qualifiers go to state 1045

State 904

484 noptr-abstract-declaratorOPEN_PAREN ptr-abstract-declarator CLOSE_PAREN CLOSE_PAREN shift, and go to state 1046

State 905

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 587 | ptr-operator ptr-abstract-declarator-opt 588 ptr-abstract-declarator-opt %empty [CLOSE_PAREN] 589 | ptr-abstract-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 681 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] CLOSE_PAREN reduce using rule 588 (ptr-abstract-declarator-opt) $default reduce using rule 485 (noptr-abstract-declarator-opt) class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 903 ptr-abstract-declarator go to state 911 ptr-abstract-declarator-opt go to state 912 ptr-operator go to state 905 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 906

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 159 constant-expression-opt %empty [CLOSE_SQUARE] 160 | constant-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 483 noptr-abstract-declaratornoptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_SQUARE reduce using rule 159 (constant-expression-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 621 constant-expression-opt go to state 1047 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 907

30 abstract-declaratornoptr-abstract-declarator-opt parameters-and-qualifiers trailing-return-type 482 noptr-abstract-declaratornoptr-abstract-declarator-opt parameters-and-qualifiers [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] 701 trailing-return-type DEREF type-id DEREF shift, and go to state 623 $default reduce using rule 482 (noptr-abstract-declarator) trailing-return-type go to state 1048

State 908

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 159 constant-expression-opt %empty [CLOSE_SQUARE] 160 | constant-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 488 noptr-abstract-pack-declaratornoptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_SQUARE reduce using rule 159 (constant-expression-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 621 constant-expression-opt go to state 1049 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 909

487 noptr-abstract-pack-declaratornoptr-abstract-pack-declarator parameters-and-qualifiers $default reduce using rule 487 (noptr-abstract-pack-declarator)

State 910

35 abstract-pack-declaratorptr-operator abstract-pack-declarator $default reduce using rule 35 (abstract-pack-declarator)

State 911

589 ptr-abstract-declarator-optptr-abstract-declarator $default reduce using rule 589 (ptr-abstract-declarator-opt)

State 912

587 ptr-abstract-declaratorptr-operator ptr-abstract-declarator-opt $default reduce using rule 587 (ptr-abstract-declarator)

State 913

555 placeholder-type-specifiertype-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN $default reduce using rule 555 (placeholder-type-specifier)

State 914

6 ELLIPSIS-optELLIPSIS [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 489 noptr-abstract-pack-declaratorELLIPSIS [COMMA, ELLIPSIS, EQ, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, GREATER] IDENTIFIER reduce using rule 6 (ELLIPSIS-opt) SCOPE reduce using rule 6 (ELLIPSIS-opt) OPERATOR reduce using rule 6 (ELLIPSIS-opt) DECLTYPE reduce using rule 6 (ELLIPSIS-opt) COMPL reduce using rule 6 (ELLIPSIS-opt) $default reduce using rule 489 (noptr-abstract-pack-declarator)

State 915

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 915 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] OPEN_SQUARE reduce using rule 485 (noptr-abstract-declarator-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 903 noptr-declarator go to state 327 ptr-abstract-declarator go to state 904 ptr-declarator go to state 328 ptr-operator go to state 1050 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 916

545 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt [COMMA, ELLIPSIS, CLOSE_PAREN, GREATER] 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause EQ shift, and go to state 1051 $default reduce using rule 545 (parameter-declaration)

State 917

543 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator [COMMA, ELLIPSIS, CLOSE_PAREN, GREATER] 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause EQ shift, and go to state 1052 $default reduce using rule 543 (parameter-declaration)

State 918

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 34 abstract-pack-declarator noptr-abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 137 class-name IDENTIFIER 138 | simple-template-id 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 487 noptr-abstract-pack-declarator noptr-abstract-pack-declarator parameters-and-qualifiers 488 | noptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 489 | ELLIPSIS 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 587 | ptr-operator ptr-abstract-declarator-opt 588 ptr-abstract-declarator-opt %empty [COMMA, ELLIPSIS, EQ, CLOSE_PAREN, GREATER] 589 | ptr-abstract-declarator 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 914 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 915 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 ELLIPSIS [reduce using rule 588 (ptr-abstract-declarator-opt)] IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] OPEN_SQUARE reduce using rule 485 (noptr-abstract-declarator-opt) OPERATOR reduce using rule 5 (ELLIPSIS-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] COMPL reduce using rule 5 (ELLIPSIS-opt) $default reduce using rule 588 (ptr-abstract-declarator-opt) ELLIPSIS-opt go to state 164 abstract-pack-declarator go to state 910 class-name go to state 55 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 903 noptr-abstract-pack-declarator go to state 687 noptr-declarator go to state 327 ptr-abstract-declarator go to state 911 ptr-abstract-declarator-opt go to state 912 ptr-declarator go to state 348 ptr-operator go to state 918 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 919

719 type-parametertemplate-head type-parameter-key ELLIPSIS-opt IDENTIFIER-opt $default reduce using rule 719 (type-parameter)

State 920

137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 340 id-expression unqualified-id 341 | qualified-id 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 643 simple-template-id template-name LESS template-argument-list-opt GREATER 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 720 type-parametertemplate-head type-parameter-key IDENTIFIER-opt EQ id-expression 730 typedef-name IDENTIFIER 731 | simple-template-id 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 SCOPE shift, and go to state 6 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 COMPL shift, and go to state 334 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 120 enum-name go to state 71 id-expression go to state 1053 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 336 operator-function-id go to state 289 qualified-id go to state 293 simple-template-id go to state 297 template-id go to state 299 template-name go to state 102 type-name go to state 106 typedef-name go to state 108 unqualified-id go to state 304

State 921

718 type-parametertype-constraint IDENTIFIER-opt EQ type-id $default reduce using rule 718 (type-parameter)

State 922

716 type-parametertype-parameter-key IDENTIFIER-opt EQ type-id $default reduce using rule 716 (type-parameter)

State 923

44 alias-declarationUSING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON $default reduce using rule 44 (alias-declaration)

State 924

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 220 defining-type-specifier-seqdefining-type-specifier attribute-specifier-seq-opt [ELLIPSIS, IDENTIFIER, SCOPE, SEMICOLON, OPEN_PAREN, AND, OPEN_SQUARE, AND_AND, DECLTYPE, MULT] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_SQUARE [reduce using rule 220 (defining-type-specifier-seq)] $default reduce using rule 220 (defining-type-specifier-seq) alignment-specifier go to state 165 attribute-specifier go to state 166

State 925

221 defining-type-specifier-seqdefining-type-specifier defining-type-specifier-seq $default reduce using rule 221 (defining-type-specifier-seq)

State 926

216 defining-type-iddefining-type-specifier-seq abstract-declarator-opt $default reduce using rule 216 (defining-type-id)

State 927

477 noexcept-expressionNOEXCEPT OPEN_PAREN expression CLOSE_PAREN $default reduce using rule 477 (noexcept-expression)

State 928

286 fold-expressionOPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN CLOSE_PAREN shift, and go to state 1054

State 929

285 fold-expressionOPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 288 fold-operator PLUS 289 | MINUS 290 | MULT 291 | DIV 292 | MOD 293 | XOR 294 | AND 295 | OR 296 | LSHIFT 297 | RSHIFT 298 | PLUS_EQ 299 | MINUS_EQ 300 | MULT_EQ 301 | DIV_EQ 302 | MOD_EQ 303 | XOR_EQ 304 | AND_EQ 305 | OR_EQ 306 | LSHIFT_EQ 307 | RSHIFT_EQ 308 | EQ 309 | EQ_EQ 310 | NOT_EQ 311 | LESS 312 | GREATER 313 | LESS_EQ 314 | GREATER_EQ 315 | AND_AND 316 | OR_OR 317 | COMMA 318 | DOT_STAR 319 | DEREF_STAR COMMA shift, and go to state 707 PLUS shift, and go to state 708 MINUS shift, and go to state 709 EQ shift, and go to state 710 CLOSE_PAREN shift, and go to state 1055 AND shift, and go to state 711 MULT_EQ shift, and go to state 712 DIV_EQ shift, and go to state 713 MOD_EQ shift, and go to state 714 PLUS_EQ shift, and go to state 715 MINUS_EQ shift, and go to state 716 RSHIFT_EQ shift, and go to state 717 LSHIFT_EQ shift, and go to state 718 AND_EQ shift, and go to state 719 XOR_EQ shift, and go to state 720 OR_EQ shift, and go to state 721 AND_AND shift, and go to state 722 OR_OR shift, and go to state 723 EQ_EQ shift, and go to state 724 NOT_EQ shift, and go to state 725 XOR shift, and go to state 726 LESS shift, and go to state 727 GREATER shift, and go to state 728 MULT shift, and go to state 729 DIV shift, and go to state 730 MOD shift, and go to state 731 OR shift, and go to state 732 LSHIFT shift, and go to state 733 RSHIFT shift, and go to state 734 LESS_EQ shift, and go to state 735 GREATER_EQ shift, and go to state 736 DOT_STAR shift, and go to state 737 DEREF_STAR shift, and go to state 738 fold-operator go to state 1056

State 930

130 cast-expressionOPEN_PAREN type-id CLOSE_PAREN cast-expression $default reduce using rule 130 (cast-expression)

State 931

636 simple-captureAND IDENTIFIER ELLIPSIS-opt $default reduce using rule 636 (simple-capture)

State 932

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 347 init-captureAND ELLIPSIS-opt IDENTIFIER initializer 359 initializer brace-or-equal-initializer 360 | OPEN_PAREN expression-list CLOSE_PAREN EQ shift, and go to state 376 OPEN_PAREN shift, and go to state 377 OPEN_BRACE shift, and go to state 378 brace-or-equal-initializer go to state 380 braced-init-list go to state 381 initializer go to state 1057

State 933

346 init-captureELLIPSIS-opt IDENTIFIER initializer $default reduce using rule 346 (init-capture)

State 934

5 ELLIPSIS-opt %empty [IDENTIFIER] 6 | ELLIPSIS 347 init-captureAND ELLIPSIS-opt IDENTIFIER initializer 636 simple-captureAND IDENTIFIER ELLIPSIS-opt ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 744 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] ELLIPSIS-opt go to state 745

State 935

128 capture-listcapture-list COMMA capture 381 lambda-capturecapture-default COMMA capture-list [CLOSE_SQUARE] COMMA shift, and go to state 749 $default reduce using rule 381 (lambda-capture)

State 936

128 capture-listcapture-list COMMA capture $default reduce using rule 128 (capture-list)

State 937

502 overloadable-operatorDELETE OPEN_SQUARE CLOSE_SQUARE $default reduce using rule 502 (overloadable-operator)

State 938

501 overloadable-operatorNEW OPEN_SQUARE CLOSE_SQUARE $default reduce using rule 501 (overloadable-operator)

State 939

498 operator-function-idOPERATOR overloadable-operator LESS template-argument-list-opt GREATER GREATER shift, and go to state 1058

State 940

166 conversion-declaratorptr-operator conversion-declarator-opt $default reduce using rule 166 (conversion-declarator)

State 941

615 requirement-parameter-listOPEN_PAREN parameter-declaration-clause CLOSE_PAREN $default reduce using rule 615 (requirement-parameter-list)

State 942

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 723 type-requirementTYPENAME nested-name-specifier-opt type-name SEMICOLON 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifierTYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 1059 nested-name-specifier-opt go to state 1060 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 943

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 148 compound-requirementOPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1061 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 944

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 161 constraint-expression logical-or-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 461 nested-requirementREQUIRES constraint-expression SEMICOLON 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 615 requirement-parameter-list OPEN_PAREN parameter-declaration-clause CLOSE_PAREN 616 requirement-parameter-list-opt %empty [OPEN_BRACE] 617 | requirement-parameter-list 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 623 | REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 1062 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] OPEN_BRACE reduce using rule 616 (requirement-parameter-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 constraint-expression go to state 1063 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 900 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requirement-parameter-list go to state 503 requirement-parameter-list-opt go to state 504 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 945

612 requirementcompound-requirement $default reduce using rule 612 (requirement)

State 946

278 expressionexpression COMMA assignment-expression 642 simple-requirementexpression SEMICOLON COMMA shift, and go to state 532 SEMICOLON shift, and go to state 1064

State 947

613 requirementnested-requirement $default reduce using rule 613 (requirement)

State 948

618 requirement-seqrequirement $default reduce using rule 618 (requirement-seq)

State 949

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 148 compound-requirement OPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 461 nested-requirement REQUIRES constraint-expression SEMICOLON 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 610 requirement simple-requirement 611 | type-requirement 612 | compound-requirement 613 | nested-requirement 614 requirement-bodyOPEN_BRACE requirement-seq CLOSE_BRACE 619 requirement-seqrequirement-seq requirement 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 642 simple-requirement expression SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 723 type-requirement TYPENAME nested-name-specifier-opt type-name SEMICOLON 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 942 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 943 CLOSE_BRACE shift, and go to state 1065 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 944 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 compound-requirement go to state 945 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 946 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 nested-requirement go to state 947 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requirement go to state 1066 requires-expression go to state 295 shift-expression go to state 296 simple-requirement go to state 950 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-requirement go to state 951 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 950

610 requirementsimple-requirement $default reduce using rule 610 (requirement)

State 951

611 requirementtype-requirement $default reduce using rule 611 (requirement)

State 952

570 postfix-expressionDYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN OPEN_PAREN shift, and go to state 1067

State 953

571 postfix-expressionSTATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN OPEN_PAREN shift, and go to state 1068

State 954

572 postfix-expressionREINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN OPEN_PAREN shift, and go to state 1069

State 955

573 postfix-expressionCONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN OPEN_PAREN shift, and go to state 1070

State 956

574 postfix-expressionTYPEID OPEN_PAREN expression CLOSE_PAREN $default reduce using rule 574 (postfix-expression)

State 957

575 postfix-expressionTYPEID OPEN_PAREN type-id CLOSE_PAREN $default reduce using rule 575 (postfix-expression)

State 958

742 unary-expressionSIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN CLOSE_PAREN shift, and go to state 1071

State 959

741 unary-expressionSIZEOF OPEN_PAREN type-id CLOSE_PAREN $default reduce using rule 741 (unary-expression)

State 960

743 unary-expressionALIGNOF OPEN_PAREN type-id CLOSE_PAREN $default reduce using rule 743 (unary-expression)

State 961

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 1072 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 962

472 new-placementOPEN_PAREN expression-list CLOSE_PAREN CLOSE_PAREN shift, and go to state 1073

State 963

134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 467 new-expressionSCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 1074 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 109

State 964

120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 466 new-expressionSCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 468 new-initializer OPEN_PAREN expression-list-opt CLOSE_PAREN 469 | braced-init-list 470 new-initializer-opt %empty [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] 471 | new-initializer OPEN_PAREN shift, and go to state 1075 OPEN_BRACE shift, and go to state 378 OPEN_BRACE [reduce using rule 470 (new-initializer-opt)] $default reduce using rule 470 (new-initializer-opt) braced-init-list go to state 1076 new-initializer go to state 1077 new-initializer-opt go to state 1078

State 965

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 462 new-declarator ptr-operator new-declarator-opt 463 | noptr-new-declarator 464 new-declarator-opt %empty [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] 465 | new-declarator 475 new-type-idtype-specifier-seq new-declarator-opt 494 noptr-new-declarator OPEN_SQUARE expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 495 | noptr-new-declarator OPEN_SQUARE constant-expression CLOSE_SQUARE attribute-specifier-seq-opt 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 AND shift, and go to state 159 OPEN_SQUARE shift, and go to state 1079 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 AND [reduce using rule 464 (new-declarator-opt)] AND_AND [reduce using rule 464 (new-declarator-opt)] MULT [reduce using rule 464 (new-declarator-opt)] $default reduce using rule 464 (new-declarator-opt) class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 new-declarator go to state 1080 new-declarator-opt go to state 1081 noptr-new-declarator go to state 1082 ptr-operator go to state 1083 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 966

131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 191 decl-specifier-seq-opt %empty [NOEXCEPT, ALIGNAS, OPEN_SQUARE, OPEN_BRACE, DEREF, REQUIRES] 192 | decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 385 lambda-declaratorOPEN_PAREN parameter-declaration-clause CLOSE_PAREN lambda-specifiers requires-clause-opt 389 lambda-specifiers decl-specifier-seq-opt noexcept-specifier-opt attribute-specifier-seq-opt trailing-return-type-opt 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 191 (decl-specifier-seq-opt) class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 537 decl-specifier-seq-opt go to state 538 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 lambda-specifiers go to state 1084 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 967

387 lambda-expressionlambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 620 requires-clause REQUIRES constraint-logical-or-expression 621 requires-clause-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_PAREN, OPEN_SQUARE, OPEN_BRACE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 622 | requires-clause REQUIRES shift, and go to state 379 $default reduce using rule 621 (requires-clause-opt) requires-clause go to state 696 requires-clause-opt go to state 1085

State 968

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 478 noexcept-specifierNOEXCEPT OPEN_PAREN constant-expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 1086 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 969

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 389 lambda-specifiersdecl-specifier-seq-opt noexcept-specifier-opt attribute-specifier-seq-opt trailing-return-type-opt 701 trailing-return-type DEREF type-id 702 trailing-return-type-opt %empty [OPEN_BRACE, REQUIRES] 703 | trailing-return-type ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 DEREF shift, and go to state 623 $default reduce using rule 702 (trailing-return-type-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 trailing-return-type go to state 1087 trailing-return-type-opt go to state 1088

State 970

445 namespace-alias-definitionNAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON IDENTIFIER shift, and go to state 1089

State 971

84 attribute-specifier-seq-optattribute-specifier-seq [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 640 simple-declarationattribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 84 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 84 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 84 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 84 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 84 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 84 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 84 (attribute-specifier-seq-opt)] CLASS [reduce using rule 84 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 84 (attribute-specifier-seq-opt)] UNION [reduce using rule 84 (attribute-specifier-seq-opt)] CONST [reduce using rule 84 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 84 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 84 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 84 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 84 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 84 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 84 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 84 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 84 (attribute-specifier-seq-opt)] AUTO reduce using rule 84 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 84 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 84 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 84 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 84 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 84 (attribute-specifier-seq-opt)] BOOL [reduce using rule 84 (attribute-specifier-seq-opt)] SHORT [reduce using rule 84 (attribute-specifier-seq-opt)] INT [reduce using rule 84 (attribute-specifier-seq-opt)] LONG [reduce using rule 84 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 84 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 84 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 84 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 84 (attribute-specifier-seq-opt)] VOID [reduce using rule 84 (attribute-specifier-seq-opt)] STATIC [reduce using rule 84 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 84 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 84 (attribute-specifier-seq-opt)] $default reduce using rule 84 (attribute-specifier-seq-opt) class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 152 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 972

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 47 and-expression equality-expression 48 | and-expression AND equality-expression 49 asm-declarationattribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 149 compound-statement OPEN_BRACE statement-seq-opt CLOSE_BRACE 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 171 coroutine-return-statement CO_RETURN expr-or-braced-init-list-opt SEMICOLON 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 277 expression assignment-expression 278 | expression COMMA assignment-expression 282 expression-opt %empty [SEMICOLON] 283 | expression 284 expression-statement expression-opt SEMICOLON 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 329 function-specifier VIRTUAL 330 | explicit-specifier 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 367 iteration-statement WHILE OPEN_PAREN condition CLOSE_PAREN statement 368 | DO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON 369 | FOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement 370 | FOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement 371 jump-statement BREAK SEMICOLON 372 | CONTINUE SEMICOLON 373 | RETURN expr-or-braced-init-list-opt SEMICOLON 374 | coroutine-return-statement 375 | GOTO IDENTIFIER SEMICOLON 376 labeled-statementattribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 627 selection-statement IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement 629 | IF NOT-opt CONSTEVAL compound-statement 630 | IF NOT-opt CONSTEVAL compound-statement ELSE statement 631 | SWITCH OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 664 statementattribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 670 | attribute-specifier-seq-opt try-block 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 706 try-block TRY compound-statement handler-seq 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 766 using-directiveattribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 1090 INLINE shift, and go to state 150 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 PLUS shift, and go to state 242 MINUS shift, and go to state 243 USING shift, and go to state 156 ALIGNAS shift, and go to state 157 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 ASM shift, and go to state 160 OPEN_SQUARE shift, and go to state 1091 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 792 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CO_RETURN shift, and go to state 1092 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 MULT shift, and go to state 249 DEFAULT shift, and go to state 1093 TRY shift, and go to state 1094 WHILE shift, and go to state 1095 DO shift, and go to state 1096 FOR shift, and go to state 1097 BREAK shift, and go to state 1098 CONTINUE shift, and go to state 1099 RETURN shift, and go to state 1100 GOTO shift, and go to state 1101 CASE shift, and go to state 1102 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 IF shift, and go to state 1103 SWITCH shift, and go to state 1104 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SEMICOLON reduce using rule 282 (expression-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 alignment-specifier go to state 165 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier go to state 166 await-expression go to state 268 cast-expression go to state 269 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 compare-expression go to state 270 compound-statement go to state 1105 conditional-expression go to state 271 conversion-function-id go to state 272 coroutine-return-statement go to state 1106 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 1107 decltype-specifier go to state 63 defining-type-specifier go to state 65 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 equality-expression go to state 274 exclusive-or-expression go to state 275 explicit-specifier go to state 154 expression go to state 1108 expression-opt go to state 1109 expression-statement go to state 1110 fold-expression go to state 277 function-specifier go to state 79 id-expression go to state 278 inclusive-or-expression go to state 279 iteration-statement go to state 1111 jump-statement go to state 1112 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 selection-statement go to state 1113 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 storage-class-specifier go to state 99 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 try-block go to state 1114 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 973

210 declaration-statementblock-declaration $default reduce using rule 210 (declaration-statement)

State 974

669 statementdeclaration-statement $default reduce using rule 669 (statement)

State 975

663 statementlabeled-statement $default reduce using rule 663 (statement)

State 976

671 statement-seqstatement $default reduce using rule 671 (statement-seq)

State 977

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 672 statement-seqstatement-seq statement 674 statement-seq-optstatement-seq [CLOSE_BRACE] 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 674 (statement-seq-opt) CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1115 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 978

149 compound-statementOPEN_BRACE statement-seq-opt CLOSE_BRACE CLOSE_BRACE shift, and go to state 1116

State 979

694 template-idliteral-operator-id LESS template-argument-list-opt GREATER $default reduce using rule 694 (template-id)

State 980

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 1117 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 981

693 template-idoperator-function-id LESS template-argument-list-opt GREATER $default reduce using rule 693 (template-id)

State 982

561 postfix-expressionpostfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN $default reduce using rule 561 (postfix-expression)

State 983

560 postfix-expressionpostfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE $default reduce using rule 560 (postfix-expression)

State 984

567 postfix-expressionpostfix-expression DEREF TEMPLATE-opt id-expression $default reduce using rule 567 (postfix-expression)

State 985

566 postfix-expressionpostfix-expression DOT TEMPLATE-opt id-expression $default reduce using rule 566 (postfix-expression)

State 986

562 postfix-expressionsimple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN $default reduce using rule 562 (postfix-expression)

State 987

563 postfix-expressiontypename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN $default reduce using rule 563 (postfix-expression)

State 988

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [CLOSE_BRACE] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 446 namespace-body declaration-seq-opt 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 460 | NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_BRACE reduce using rule 208 (declaration-seq-opt) CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 828 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-body go to state 1118 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 989

676 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON SEMICOLON shift, and go to state 1119

State 990

443 named-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE CLOSE_BRACE shift, and go to state 1120

State 991

753 unnamed-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE $default reduce using rule 753 (unnamed-namespace-definition)

State 992

766 using-directiveattribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON $default reduce using rule 766 (using-directive)

State 993

46 alignment-specifierALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN $default reduce using rule 46 (alignment-specifier)

State 994

45 alignment-specifierALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN $default reduce using rule 45 (alignment-specifier)

State 995

49 asm-declarationattribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON $default reduce using rule 49 (asm-declaration)

State 996

87 attribute-using-prefixUSING attribute-namespace COLON $default reduce using rule 87 (attribute-using-prefix)

State 997

74 attribute-listattribute ELLIPSIS $default reduce using rule 74 (attribute-list)

State 998

67 attribute attribute-token attribute-argument-clause-opt 73 attribute-listattribute-list COMMA attribute-opt 75 | attribute-list COMMA attribute ELLIPSIS 76 attribute-namespace IDENTIFIER 77 attribute-opt %empty [COMMA, CLOSE_SQUARE] 78 | attribute 79 attribute-scoped-token attribute-namespace SCOPE IDENTIFIER 85 attribute-token IDENTIFIER 86 | attribute-scoped-token IDENTIFIER shift, and go to state 836 $default reduce using rule 77 (attribute-opt) attribute go to state 1121 attribute-namespace go to state 839 attribute-opt go to state 1122 attribute-scoped-token go to state 841 attribute-token go to state 842

State 999

80 attribute-specifierOPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE CLOSE_SQUARE shift, and go to state 1123

State 1000

79 attribute-scoped-tokenattribute-namespace SCOPE IDENTIFIER IDENTIFIER shift, and go to state 1124

State 1001

68 attribute-argument-clauseOPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 91 balanced-token OPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 92 | OPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE 93 | OPEN_BRACE balanced-token-seq-opt CLOSE_BRACE 94 | BALANCED_TOKEN 95 balanced-token-seq balanced-token 96 | balanced-token-seq balanced-token 97 balanced-token-seq-opt %empty [CLOSE_PAREN] 98 | balanced-token-seq OPEN_PAREN shift, and go to state 1125 OPEN_SQUARE shift, and go to state 1126 OPEN_BRACE shift, and go to state 1127 BALANCED_TOKEN shift, and go to state 1128 $default reduce using rule 97 (balanced-token-seq-opt) balanced-token go to state 1129 balanced-token-seq go to state 1130 balanced-token-seq-opt go to state 1131

State 1002

70 attribute-argument-clause-optattribute-argument-clause $default reduce using rule 70 (attribute-argument-clause-opt)

State 1003

67 attributeattribute-token attribute-argument-clause-opt $default reduce using rule 67 (attribute)

State 1004

343 identifier-listidentifier-list COMMA IDENTIFIER IDENTIFIER shift, and go to state 1132

State 1005

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 359 initializer brace-or-equal-initializer 360 | OPEN_PAREN expression-list CLOSE_PAREN 641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON EQ shift, and go to state 376 OPEN_PAREN shift, and go to state 377 OPEN_BRACE shift, and go to state 378 brace-or-equal-initializer go to state 380 braced-init-list go to state 381 initializer go to state 1133

State 1006

326 function-bodyEQ DELETE SEMICOLON SEMICOLON shift, and go to state 1134

State 1007

325 function-bodyEQ DEFAULT SEMICOLON SEMICOLON shift, and go to state 1135

State 1008

137 class-nameIDENTIFIER [SCOPE] 246 enum-nameIDENTIFIER [SCOPE] 401 mem-initializer-idIDENTIFIER [OPEN_PAREN, OPEN_BRACE] 444 namespace-aliasIDENTIFIER [SCOPE] 450 namespace-nameIDENTIFIER [SCOPE] 695 template-nameIDENTIFIER [LESS] 730 typedef-nameIDENTIFIER [SCOPE] SCOPE reduce using rule 137 (class-name) SCOPE [reduce using rule 246 (enum-name)] SCOPE [reduce using rule 444 (namespace-alias)] SCOPE [reduce using rule 450 (namespace-name)] SCOPE [reduce using rule 730 (typedef-name)] LESS reduce using rule 695 (template-name) $default reduce using rule 401 (mem-initializer-id)

State 1009

400 mem-initializer-idclass-or-decltype $default reduce using rule 400 (mem-initializer-id)

State 1010

5 ELLIPSIS-opt %empty [COMMA, OPEN_BRACE] 6 | ELLIPSIS 402 mem-initializer-listmem-initializer ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 1136

State 1011

120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 398 mem-initializermem-initializer-id OPEN_PAREN expression-list-opt CLOSE_PAREN 399 | mem-initializer-id braced-init-list OPEN_PAREN shift, and go to state 1137 OPEN_BRACE shift, and go to state 378 braced-init-list go to state 1138

State 1012

172 ctor-initializerCOLON mem-initializer-list [OPEN_BRACE] 403 mem-initializer-listmem-initializer-list COMMA mem-initializer ELLIPSIS-opt COMMA shift, and go to state 1139 $default reduce using rule 172 (ctor-initializer)

State 1013

149 compound-statement OPEN_BRACE statement-seq-opt CLOSE_BRACE 331 function-try-blockTRY ctor-initializer-opt compound-statement handler-seq OPEN_BRACE shift, and go to state 792 compound-statement go to state 1140

State 1014

323 function-bodyctor-initializer-opt compound-statement $default reduce using rule 323 (function-body)

State 1015

553 parameters-and-qualifiersOPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt 601 ref-qualifier AND 602 | AND_AND 603 ref-qualifier-opt %empty [COMMA, ELLIPSIS, NOEXCEPT, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, DEREF, GREATER, TRY, REQUIRES, OVERRIDE] 604 | ref-qualifier AND shift, and go to state 337 AND_AND shift, and go to state 338 $default reduce using rule 603 (ref-qualifier-opt) ref-qualifier go to state 339 ref-qualifier-opt go to state 1141

State 1016

548 parameter-declaration-clauseparameter-declaration-list COMMA ELLIPSIS $default reduce using rule 548 (parameter-declaration-clause)

State 1017

550 parameter-declaration-listparameter-declaration-list COMMA parameter-declaration $default reduce using rule 550 (parameter-declaration-list)

State 1018

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 492 noptr-declaratornoptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_SQUARE [reduce using rule 492 (noptr-declarator)] $default reduce using rule 492 (noptr-declarator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 1019

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 418 member-declaratorIDENTIFIER-opt attribute-specifier-seq-opt COLON constant-expression brace-or-equal-initializer-opt ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 COLON shift, and go to state 1142 alignment-specifier go to state 165 attribute-specifier go to state 166

State 1020

119 brace-or-equal-initializer-optbrace-or-equal-initializer $default reduce using rule 119 (brace-or-equal-initializer-opt)

State 1021

417 member-declaratordeclarator brace-or-equal-initializer-opt $default reduce using rule 417 (member-declarator)

State 1022

172 ctor-initializer COLON mem-initializer-list 173 ctor-initializer-opt %empty [OPEN_BRACE] 174 | ctor-initializer 323 function-body ctor-initializer-opt compound-statement 324 | function-try-block 325 | EQ DEFAULT SEMICOLON 326 | EQ DELETE SEMICOLON 328 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 331 function-try-block TRY ctor-initializer-opt compound-statement handler-seq 416 member-declaratordeclarator requires-clause [COMMA, SEMICOLON] EQ shift, and go to state 846 COLON shift, and go to state 847 TRY shift, and go to state 848 OPEN_BRACE reduce using rule 173 (ctor-initializer-opt) $default reduce using rule 416 (member-declarator) ctor-initializer go to state 849 ctor-initializer-opt go to state 850 function-body go to state 851 function-try-block go to state 852

State 1023

172 ctor-initializer COLON mem-initializer-list 173 ctor-initializer-opt %empty [OPEN_BRACE] 174 | ctor-initializer 323 function-body ctor-initializer-opt compound-statement 324 | function-try-block 325 | EQ DEFAULT SEMICOLON 326 | EQ DELETE SEMICOLON 327 function-definitionattribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 331 function-try-block TRY ctor-initializer-opt compound-statement handler-seq 415 member-declaratordeclarator virt-specifier-seq-opt pure-specifier-opt 596 pure-specifier EQ '0' 597 pure-specifier-opt %empty [COMMA, SEMICOLON] 598 | pure-specifier EQ shift, and go to state 1143 COLON shift, and go to state 847 TRY shift, and go to state 848 OPEN_BRACE reduce using rule 173 (ctor-initializer-opt) $default reduce using rule 597 (pure-specifier-opt) ctor-initializer go to state 849 ctor-initializer-opt go to state 850 function-body go to state 854 function-try-block go to state 852 pure-specifier go to state 1144 pure-specifier-opt go to state 1145

State 1024

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 11 IDENTIFIER-opt %empty [ALIGNAS, OPEN_SQUARE, COLON] 12 | IDENTIFIER 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 415 member-declarator declarator virt-specifier-seq-opt pure-specifier-opt 416 | declarator requires-clause 417 | declarator brace-or-equal-initializer-opt 418 | IDENTIFIER-opt attribute-specifier-seq-opt COLON constant-expression brace-or-equal-initializer-opt 420 member-declarator-listmember-declarator-list COMMA member-declarator 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 862 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] OPERATOR reduce using rule 5 (ELLIPSIS-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] COMPL reduce using rule 5 (ELLIPSIS-opt) $default reduce using rule 11 (IDENTIFIER-opt) ELLIPSIS-opt go to state 164 IDENTIFIER-opt go to state 863 class-name go to state 55 declarator go to state 1146 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 member-declarator go to state 1147 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 172 ptr-declarator go to state 173 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1025

404 member-declarationattribute-specifier-seq-opt decl-specifier-seq-opt member-declarator-list-opt SEMICOLON $default reduce using rule 404 (member-declaration)

State 1026

40 access-specifier-optaccess-specifier $default reduce using rule 40 (access-specifier-opt)

State 1027

103 base-specifierattribute-specifier-seq-opt VIRTUAL access-specifier-opt class-or-decltype 137 class-name IDENTIFIER 138 | simple-template-id 139 class-or-decltype nested-name-specifier-opt type-name 140 | nested-name-specifier TEMPLATE simple-template-id 141 | decltype-specifier 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 class-or-decltype go to state 1148 decltype-specifier go to state 872 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 873 nested-name-specifier-opt go to state 874 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1028

28 VIRTUAL-optVIRTUAL $default reduce using rule 28 (VIRTUAL-opt)

State 1029

104 base-specifierattribute-specifier-seq-opt access-specifier VIRTUAL-opt class-or-decltype 137 class-name IDENTIFIER 138 | simple-template-id 139 class-or-decltype nested-name-specifier-opt type-name 140 | nested-name-specifier TEMPLATE simple-template-id 141 | decltype-specifier 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 class-or-decltype go to state 1149 decltype-specifier go to state 872 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 873 nested-name-specifier-opt go to state 874 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1030

22 TEMPLATE-optTEMPLATE [IDENTIFIER] 140 class-or-decltypenested-name-specifier TEMPLATE simple-template-id 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER IDENTIFIER shift, and go to state 191 IDENTIFIER [reduce using rule 22 (TEMPLATE-opt)] simple-template-id go to state 1150 template-name go to state 102

State 1031

139 class-or-decltypenested-name-specifier-opt type-name $default reduce using rule 139 (class-or-decltype)

State 1032

5 ELLIPSIS-opt %empty [COMMA, OPEN_BRACE] 6 | ELLIPSIS 106 base-specifier-listbase-specifier-list COMMA base-specifier ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 1151

State 1033

5 ELLIPSIS-opt %empty [COMMA, CLOSE_PAREN, CLOSE_SQUARE, CLOSE_BRACE] 6 | ELLIPSIS 364 initializer-listinitializer-list COMMA initializer-clause ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 1152

State 1034

226 designated-initializer-listdesignated-initializer-list COMMA designated-initializer-clause $default reduce using rule 226 (designated-initializer-list)

State 1035

121 braced-init-listOPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE $default reduce using rule 121 (braced-init-list)

State 1036

120 braced-init-listOPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE $default reduce using rule 120 (braced-init-list)

State 1037

163 constraint-logical-and-expressionconstraint-logical-and-expression AND_AND primary-expression $default reduce using rule 163 (constraint-logical-and-expression)

State 1038

163 constraint-logical-and-expressionconstraint-logical-and-expression AND_AND primary-expression 165 constraint-logical-or-expressionconstraint-logical-or-expression OR_OR constraint-logical-and-expression [COMMA, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, SCOPE, TEMPLATE, TYPENAME, VIRTUAL, USING, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, COLON, OPEN_BRACE, CLASS, STRUCT, UNION, CONCEPT, AND_AND, OR_OR, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DEREF, ENUM, EXPLICIT, MULT, TRY, IMPORT, NAMESPACE, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE] AND_AND shift, and go to state 887 AND_AND [reduce using rule 165 (constraint-logical-or-expression)] $default reduce using rule 165 (constraint-logical-or-expression)

State 1039

215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER IDENTIFIER shift, and go to state 191 simple-template-id go to state 1153 template-name go to state 102

State 1040

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 427 module-declarationEXPORT-opt MODULE module-name module-partition-opt attribute-specifier-seq-opt SEMICOLON SEMICOLON shift, and go to state 1154 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 alignment-specifier go to state 165 attribute-specifier go to state 166

State 1041

583 private-module-fragmentMODULE COLON PRIVATE SEMICOLON declaration-seq-opt SEMICOLON shift, and go to state 1155

State 1042

150 concept-definitionCONCEPT concept-name EQ constraint-expression SEMICOLON $default reduce using rule 150 (concept-definition)

State 1043

229 elaborated-type-specifierclass-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER $default reduce using rule 229 (elaborated-type-specifier)

State 1044

686 template-argument-listtemplate-argument-list COMMA template-argument ELLIPSIS-opt $default reduce using rule 686 (template-argument-list)

State 1045

482 noptr-abstract-declaratornoptr-abstract-declarator-opt parameters-and-qualifiers $default reduce using rule 482 (noptr-abstract-declarator)

State 1046

484 noptr-abstract-declaratorOPEN_PAREN ptr-abstract-declarator CLOSE_PAREN $default reduce using rule 484 (noptr-abstract-declarator)

State 1047

483 noptr-abstract-declaratornoptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt CLOSE_SQUARE shift, and go to state 1156

State 1048

30 abstract-declaratornoptr-abstract-declarator-opt parameters-and-qualifiers trailing-return-type $default reduce using rule 30 (abstract-declarator)

State 1049

488 noptr-abstract-pack-declaratornoptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt CLOSE_SQUARE shift, and go to state 1157

State 1050

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 587 | ptr-operator ptr-abstract-declarator-opt 588 ptr-abstract-declarator-opt %empty [CLOSE_PAREN] 589 | ptr-abstract-declarator 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 915 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] CLOSE_PAREN reduce using rule 588 (ptr-abstract-declarator-opt) OPEN_SQUARE reduce using rule 485 (noptr-abstract-declarator-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 903 noptr-declarator go to state 327 ptr-abstract-declarator go to state 911 ptr-abstract-declarator-opt go to state 912 ptr-declarator go to state 348 ptr-operator go to state 1050 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1051

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 546 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 1158 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1052

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 544 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 1159 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1053

720 type-parametertemplate-head type-parameter-key IDENTIFIER-opt EQ id-expression $default reduce using rule 720 (type-parameter)

State 1054

286 fold-expressionOPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN $default reduce using rule 286 (fold-expression)

State 1055

285 fold-expressionOPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN $default reduce using rule 285 (fold-expression)

State 1056

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 await-expression go to state 268 cast-expression go to state 1160 class-name go to state 55 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 fold-expression go to state 277 id-expression go to state 278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 requires-expression go to state 295 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 1057

347 init-captureAND ELLIPSIS-opt IDENTIFIER initializer $default reduce using rule 347 (init-capture)

State 1058

498 operator-function-idOPERATOR overloadable-operator LESS template-argument-list-opt GREATER $default reduce using rule 498 (operator-function-id)

State 1059

21 TEMPLATE-opt %empty [IDENTIFIER] 22 | TEMPLATE 456 nested-name-specifiernested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 459 nested-name-specifier-optnested-name-specifier [IDENTIFIER] 732 typename-specifierTYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 228 TEMPLATE shift, and go to state 229 IDENTIFIER [reduce using rule 21 (TEMPLATE-opt)] IDENTIFIER [reduce using rule 459 (nested-name-specifier-opt)] TEMPLATE-opt go to state 230

State 1060

137 class-name IDENTIFIER 138 | simple-template-id 246 enum-name IDENTIFIER 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 723 type-requirementTYPENAME nested-name-specifier-opt type-name SEMICOLON 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 505 class-name go to state 55 enum-name go to state 71 simple-template-id go to state 96 template-name go to state 102 type-name go to state 1161 typedef-name go to state 108

State 1061

148 compound-requirementOPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON 278 expressionexpression COMMA assignment-expression COMMA shift, and go to state 532 CLOSE_BRACE shift, and go to state 1162

State 1062

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, THIS, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 285 | OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 543 parameter-declaration attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator 544 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause 545 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt 546 | attribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause 547 parameter-declaration-clause parameter-declaration-list-opt ELLIPSIS-opt 548 | parameter-declaration-list COMMA ELLIPSIS 549 parameter-declaration-list parameter-declaration 550 | parameter-declaration-list COMMA parameter-declaration 551 parameter-declaration-list-opt %empty [ELLIPSIS, CLOSE_PAREN] 552 | parameter-declaration-list 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 615 requirement-parameter-listOPEN_PAREN parameter-declaration-clause CLOSE_PAREN 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 711 type-id type-specifier-seq abstract-declarator-opt 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list ELLIPSIS shift, and go to state 437 IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 ELLIPSIS [reduce using rule 551 (parameter-declaration-list-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] THIS [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] CLOSE_PAREN reduce using rule 551 (parameter-declaration-list-opt) OPEN_SQUARE [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] DELETE reduce using rule 19 (SCOPE-opt) ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] NEW reduce using rule 19 (SCOPE-opt) AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 219 await-expression go to state 268 cast-expression go to state 438 class-key go to state 404 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 cv-qualifier go to state 57 decltype-specifier go to state 63 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 439 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 parameter-declaration go to state 617 parameter-declaration-clause go to state 761 parameter-declaration-list go to state 619 parameter-declaration-list-opt go to state 620 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 407 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-id go to state 440 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 413 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1063

461 nested-requirementREQUIRES constraint-expression SEMICOLON SEMICOLON shift, and go to state 1163

State 1064

642 simple-requirementexpression SEMICOLON $default reduce using rule 642 (simple-requirement)

State 1065

614 requirement-bodyOPEN_BRACE requirement-seq CLOSE_BRACE $default reduce using rule 614 (requirement-body)

State 1066

619 requirement-seqrequirement-seq requirement $default reduce using rule 619 (requirement-seq)

State 1067

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1164 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1068

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1165 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1069

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1166 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1070

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1167 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1071

742 unary-expressionSIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN $default reduce using rule 742 (unary-expression)

State 1072

223 delete-expressionSCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression $default reduce using rule 223 (delete-expression)

State 1073

472 new-placementOPEN_PAREN expression-list CLOSE_PAREN $default reduce using rule 472 (new-placement)

State 1074

467 new-expressionSCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt CLOSE_PAREN shift, and go to state 1168

State 1075

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 279 expression-list initializer-list 280 expression-list-opt %empty [CLOSE_PAREN] 281 | expression-list 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 468 new-initializerOPEN_PAREN expression-list-opt CLOSE_PAREN 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_PAREN reduce using rule 280 (expression-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression-list go to state 808 expression-list-opt go to state 1169 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 645 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1076

469 new-initializerbraced-init-list $default reduce using rule 469 (new-initializer)

State 1077

471 new-initializer-optnew-initializer $default reduce using rule 471 (new-initializer-opt)

State 1078

466 new-expressionSCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt $default reduce using rule 466 (new-expression)

State 1079

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 282 expression-opt %empty [CLOSE_SQUARE] 283 | expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 494 noptr-new-declaratorOPEN_SQUARE expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_SQUARE reduce using rule 282 (expression-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1108 expression-opt go to state 1170 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1080

465 new-declarator-optnew-declarator $default reduce using rule 465 (new-declarator-opt)

State 1081

475 new-type-idtype-specifier-seq new-declarator-opt $default reduce using rule 475 (new-type-id)

State 1082

463 new-declaratornoptr-new-declarator [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] 495 noptr-new-declaratornoptr-new-declarator OPEN_SQUARE constant-expression CLOSE_SQUARE attribute-specifier-seq-opt OPEN_SQUARE shift, and go to state 1171 $default reduce using rule 463 (new-declarator)

State 1083

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 462 new-declarator ptr-operator new-declarator-opt 462 | ptr-operator new-declarator-opt 463 | noptr-new-declarator 464 new-declarator-opt %empty [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] 465 | new-declarator 494 noptr-new-declarator OPEN_SQUARE expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 495 | noptr-new-declarator OPEN_SQUARE constant-expression CLOSE_SQUARE attribute-specifier-seq-opt 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 AND shift, and go to state 159 OPEN_SQUARE shift, and go to state 1079 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 AND [reduce using rule 464 (new-declarator-opt)] AND_AND [reduce using rule 464 (new-declarator-opt)] MULT [reduce using rule 464 (new-declarator-opt)] $default reduce using rule 464 (new-declarator-opt) class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 new-declarator go to state 1080 new-declarator-opt go to state 1172 noptr-new-declarator go to state 1082 ptr-operator go to state 1083 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1084

385 lambda-declaratorOPEN_PAREN parameter-declaration-clause CLOSE_PAREN lambda-specifiers requires-clause-opt 620 requires-clause REQUIRES constraint-logical-or-expression 621 requires-clause-opt %empty [OPEN_BRACE] 622 | requires-clause REQUIRES shift, and go to state 379 $default reduce using rule 621 (requires-clause-opt) requires-clause go to state 696 requires-clause-opt go to state 1173

State 1085

131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 191 decl-specifier-seq-opt %empty [NOEXCEPT, ALIGNAS, OPEN_SQUARE, OPEN_BRACE, DEREF] 192 | decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 384 lambda-declarator lambda-specifiers 385 | OPEN_PAREN parameter-declaration-clause CLOSE_PAREN lambda-specifiers requires-clause-opt 387 lambda-expressionlambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 389 lambda-specifiers decl-specifier-seq-opt noexcept-specifier-opt attribute-specifier-seq-opt trailing-return-type-opt 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 OPEN_PAREN shift, and go to state 535 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 191 (decl-specifier-seq-opt) class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 537 decl-specifier-seq-opt go to state 538 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 lambda-declarator go to state 1174 lambda-specifiers go to state 540 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 1086

478 noexcept-specifierNOEXCEPT OPEN_PAREN constant-expression CLOSE_PAREN CLOSE_PAREN shift, and go to state 1175

State 1087

703 trailing-return-type-opttrailing-return-type $default reduce using rule 703 (trailing-return-type-opt)

State 1088

389 lambda-specifiersdecl-specifier-seq-opt noexcept-specifier-opt attribute-specifier-seq-opt trailing-return-type-opt $default reduce using rule 389 (lambda-specifiers)

State 1089

445 namespace-alias-definitionNAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON EQ shift, and go to state 318

State 1090

137 class-nameIDENTIFIER [SCOPE] 246 enum-nameIDENTIFIER [SCOPE] 376 labeled-statementattribute-specifier-seq-opt IDENTIFIER COLON statement 444 namespace-aliasIDENTIFIER [SCOPE] 450 namespace-nameIDENTIFIER [SCOPE] 695 template-nameIDENTIFIER [LESS] 730 typedef-nameIDENTIFIER [SCOPE] 754 unqualified-idIDENTIFIER [COMMA, PLUS, MINUS, EQ, SEMICOLON, OPEN_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, SPACESHIP, QUERY, AND_AND, OR_OR, DEREF, DOT, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR, PLUS_PLUS, MINUS_MINUS] COLON shift, and go to state 1176 SCOPE reduce using rule 137 (class-name) SCOPE [reduce using rule 246 (enum-name)] SCOPE [reduce using rule 444 (namespace-alias)] SCOPE [reduce using rule 450 (namespace-name)] SCOPE [reduce using rule 730 (typedef-name)] LESS reduce using rule 695 (template-name) LESS [reduce using rule 754 (unqualified-id)] $default reduce using rule 754 (unqualified-id)

State 1091

5 ELLIPSIS-opt %empty [IDENTIFIER] 6 | ELLIPSIS 80 attribute-specifierOPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 123 capture simple-capture 124 | init-capture 125 capture-default AND 126 | EQ 127 capture-list capture 128 | capture-list COMMA capture 346 init-capture ELLIPSIS-opt IDENTIFIER initializer 347 | AND ELLIPSIS-opt IDENTIFIER initializer 379 lambda-capture capture-default 380 | capture-list 381 | capture-default COMMA capture-list 382 lambda-capture-opt %empty [CLOSE_SQUARE] 383 | lambda-capture 388 lambda-introducerOPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 635 simple-capture IDENTIFIER ELLIPSIS-opt 636 | AND IDENTIFIER ELLIPSIS-opt 637 | THIS 638 | MULT THIS ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 441 THIS shift, and go to state 442 EQ shift, and go to state 443 AND shift, and go to state 444 OPEN_SQUARE shift, and go to state 331 MULT shift, and go to state 445 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 382 (lambda-capture-opt) ELLIPSIS-opt go to state 446 capture go to state 447 capture-default go to state 448 capture-list go to state 449 init-capture go to state 450 lambda-capture go to state 451 lambda-capture-opt go to state 452 simple-capture go to state 453

State 1092

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 171 coroutine-return-statementCO_RETURN expr-or-braced-init-list-opt SEMICOLON 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 273 expr-or-braced-init-list expression 274 | braced-init-list 275 expr-or-braced-init-list-opt %empty [SEMICOLON] 276 | expr-or-braced-init-list 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SEMICOLON reduce using rule 275 (expr-or-braced-init-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 braced-init-list go to state 1177 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expr-or-braced-init-list go to state 1178 expr-or-braced-init-list-opt go to state 1179 expression go to state 1180 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1093

378 labeled-statementattribute-specifier-seq-opt DEFAULT COLON statement COLON shift, and go to state 1181

State 1094

149 compound-statement OPEN_BRACE statement-seq-opt CLOSE_BRACE 706 try-blockTRY compound-statement handler-seq OPEN_BRACE shift, and go to state 792 compound-statement go to state 1182

State 1095

367 iteration-statementWHILE OPEN_PAREN condition CLOSE_PAREN statement OPEN_PAREN shift, and go to state 1183

State 1096

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 368 iteration-statementDO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1184 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1097

369 iteration-statementFOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement 370 | FOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement OPEN_PAREN shift, and go to state 1185

State 1098

371 jump-statementBREAK SEMICOLON SEMICOLON shift, and go to state 1186

State 1099

372 jump-statementCONTINUE SEMICOLON SEMICOLON shift, and go to state 1187

State 1100

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 273 expr-or-braced-init-list expression 274 | braced-init-list 275 expr-or-braced-init-list-opt %empty [SEMICOLON] 276 | expr-or-braced-init-list 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 373 jump-statementRETURN expr-or-braced-init-list-opt SEMICOLON 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SEMICOLON reduce using rule 275 (expr-or-braced-init-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 braced-init-list go to state 1177 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expr-or-braced-init-list go to state 1178 expr-or-braced-init-list-opt go to state 1188 expression go to state 1180 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1101

375 jump-statementGOTO IDENTIFIER SEMICOLON IDENTIFIER shift, and go to state 1189

State 1102

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 377 labeled-statementattribute-specifier-seq-opt CASE constant-expression COLON statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 1190 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 1103

3 CONSTEXPR-opt %empty [OPEN_PAREN] 4 | CONSTEXPR 17 NOT-opt %empty [CONSTEVAL] 18 | NOT 627 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement 629 | IF NOT-opt CONSTEVAL compound-statement 630 | IF NOT-opt CONSTEVAL compound-statement ELSE statement CONSTEXPR shift, and go to state 1191 NOT shift, and go to state 1192 CONSTEVAL reduce using rule 17 (NOT-opt) $default reduce using rule 3 (CONSTEXPR-opt) CONSTEXPR-opt go to state 1193 NOT-opt go to state 1194

State 1104

631 selection-statementSWITCH OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement OPEN_PAREN shift, and go to state 1195

State 1105

665 statementattribute-specifier-seq-opt compound-statement $default reduce using rule 665 (statement)

State 1106

374 jump-statementcoroutine-return-statement $default reduce using rule 374 (jump-statement)

State 1107

601 ref-qualifier AND 602 | AND_AND 603 ref-qualifier-opt %empty [OPEN_SQUARE] 604 | ref-qualifier 641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON AND shift, and go to state 337 AND_AND shift, and go to state 338 $default reduce using rule 603 (ref-qualifier-opt) ref-qualifier go to state 339 ref-qualifier-opt go to state 340

State 1108

278 expressionexpression COMMA assignment-expression 283 expression-optexpression [SEMICOLON, CLOSE_PAREN, CLOSE_SQUARE] COMMA shift, and go to state 532 $default reduce using rule 283 (expression-opt)

State 1109

284 expression-statementexpression-opt SEMICOLON SEMICOLON shift, and go to state 1196

State 1110

664 statementattribute-specifier-seq-opt expression-statement $default reduce using rule 664 (statement)

State 1111

667 statementattribute-specifier-seq-opt iteration-statement $default reduce using rule 667 (statement)

State 1112

668 statementattribute-specifier-seq-opt jump-statement $default reduce using rule 668 (statement)

State 1113

666 statementattribute-specifier-seq-opt selection-statement $default reduce using rule 666 (statement)

State 1114

670 statementattribute-specifier-seq-opt try-block $default reduce using rule 670 (statement)

State 1115

672 statement-seqstatement-seq statement $default reduce using rule 672 (statement-seq)

State 1116

149 compound-statementOPEN_BRACE statement-seq-opt CLOSE_BRACE $default reduce using rule 149 (compound-statement)

State 1117

157 conditional-expressionlogical-or-expression QUERY expression COLON assignment-expression $default reduce using rule 157 (conditional-expression)

State 1118

460 nested-namespace-definitionNAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE CLOSE_BRACE shift, and go to state 1197

State 1119

676 static_assert-declarationSTATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON $default reduce using rule 676 (static_assert-declaration)

State 1120

443 named-namespace-definitionINLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE $default reduce using rule 443 (named-namespace-definition)

State 1121

75 attribute-listattribute-list COMMA attribute ELLIPSIS 78 attribute-optattribute [COMMA, CLOSE_SQUARE] ELLIPSIS shift, and go to state 1198 $default reduce using rule 78 (attribute-opt)

State 1122

73 attribute-listattribute-list COMMA attribute-opt $default reduce using rule 73 (attribute-list)

State 1123

80 attribute-specifierOPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE $default reduce using rule 80 (attribute-specifier)

State 1124

79 attribute-scoped-tokenattribute-namespace SCOPE IDENTIFIER $default reduce using rule 79 (attribute-scoped-token)

State 1125

91 balanced-token OPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 91 | OPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 92 | OPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE 93 | OPEN_BRACE balanced-token-seq-opt CLOSE_BRACE 94 | BALANCED_TOKEN 95 balanced-token-seq balanced-token 96 | balanced-token-seq balanced-token 97 balanced-token-seq-opt %empty [CLOSE_PAREN] 98 | balanced-token-seq OPEN_PAREN shift, and go to state 1125 OPEN_SQUARE shift, and go to state 1126 OPEN_BRACE shift, and go to state 1127 BALANCED_TOKEN shift, and go to state 1128 $default reduce using rule 97 (balanced-token-seq-opt) balanced-token go to state 1129 balanced-token-seq go to state 1130 balanced-token-seq-opt go to state 1199

State 1126

91 balanced-token OPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 92 | OPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE 92 | OPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE 93 | OPEN_BRACE balanced-token-seq-opt CLOSE_BRACE 94 | BALANCED_TOKEN 95 balanced-token-seq balanced-token 96 | balanced-token-seq balanced-token 97 balanced-token-seq-opt %empty [CLOSE_SQUARE] 98 | balanced-token-seq OPEN_PAREN shift, and go to state 1125 OPEN_SQUARE shift, and go to state 1126 OPEN_BRACE shift, and go to state 1127 BALANCED_TOKEN shift, and go to state 1128 $default reduce using rule 97 (balanced-token-seq-opt) balanced-token go to state 1129 balanced-token-seq go to state 1130 balanced-token-seq-opt go to state 1200

State 1127

91 balanced-token OPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 92 | OPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE 93 | OPEN_BRACE balanced-token-seq-opt CLOSE_BRACE 93 | OPEN_BRACE balanced-token-seq-opt CLOSE_BRACE 94 | BALANCED_TOKEN 95 balanced-token-seq balanced-token 96 | balanced-token-seq balanced-token 97 balanced-token-seq-opt %empty [CLOSE_BRACE] 98 | balanced-token-seq OPEN_PAREN shift, and go to state 1125 OPEN_SQUARE shift, and go to state 1126 OPEN_BRACE shift, and go to state 1127 BALANCED_TOKEN shift, and go to state 1128 $default reduce using rule 97 (balanced-token-seq-opt) balanced-token go to state 1129 balanced-token-seq go to state 1130 balanced-token-seq-opt go to state 1201

State 1128

94 balanced-tokenBALANCED_TOKEN $default reduce using rule 94 (balanced-token)

State 1129

95 balanced-token-seqbalanced-token $default reduce using rule 95 (balanced-token-seq)

State 1130

91 balanced-token OPEN_PAREN balanced-token-seq-opt CLOSE_PAREN 92 | OPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE 93 | OPEN_BRACE balanced-token-seq-opt CLOSE_BRACE 94 | BALANCED_TOKEN 96 balanced-token-seqbalanced-token-seq balanced-token 98 balanced-token-seq-optbalanced-token-seq [CLOSE_PAREN, CLOSE_SQUARE, CLOSE_BRACE] OPEN_PAREN shift, and go to state 1125 OPEN_SQUARE shift, and go to state 1126 OPEN_BRACE shift, and go to state 1127 BALANCED_TOKEN shift, and go to state 1128 $default reduce using rule 98 (balanced-token-seq-opt) balanced-token go to state 1202

State 1131

68 attribute-argument-clauseOPEN_PAREN balanced-token-seq-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 1203

State 1132

343 identifier-listidentifier-list COMMA IDENTIFIER $default reduce using rule 343 (identifier-list)

State 1133

641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON SEMICOLON shift, and go to state 1204

State 1134

326 function-bodyEQ DELETE SEMICOLON $default reduce using rule 326 (function-body)

State 1135

325 function-bodyEQ DEFAULT SEMICOLON $default reduce using rule 325 (function-body)

State 1136

402 mem-initializer-listmem-initializer ELLIPSIS-opt $default reduce using rule 402 (mem-initializer-list)

State 1137

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 279 expression-list initializer-list 280 expression-list-opt %empty [CLOSE_PAREN] 281 | expression-list 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 361 initializer-clause assignment-expression 362 | braced-init-list 363 initializer-list initializer-clause ELLIPSIS-opt 364 | initializer-list COMMA initializer-clause ELLIPSIS-opt 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 398 mem-initializermem-initializer-id OPEN_PAREN expression-list-opt CLOSE_PAREN 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_PAREN reduce using rule 280 (expression-list-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 640 await-expression go to state 268 braced-init-list go to state 641 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression-list go to state 808 expression-list-opt go to state 1205 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 initializer-clause go to state 644 initializer-list go to state 645 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1138

399 mem-initializermem-initializer-id braced-init-list $default reduce using rule 399 (mem-initializer)

State 1139

137 class-name IDENTIFIER 138 | simple-template-id 139 class-or-decltype nested-name-specifier-opt type-name 140 | nested-name-specifier TEMPLATE simple-template-id 141 | decltype-specifier 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 398 mem-initializer mem-initializer-id OPEN_PAREN expression-list-opt CLOSE_PAREN 399 | mem-initializer-id braced-init-list 400 mem-initializer-id class-or-decltype 401 | IDENTIFIER 403 mem-initializer-listmem-initializer-list COMMA mem-initializer ELLIPSIS-opt 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 1008 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 class-or-decltype go to state 1009 decltype-specifier go to state 872 enum-name go to state 71 mem-initializer go to state 1206 mem-initializer-id go to state 1011 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 873 nested-name-specifier-opt go to state 874 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1140

331 function-try-blockTRY ctor-initializer-opt compound-statement handler-seq 335 handler CATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement 336 handler-seq handler handler-seq-opt CATCH shift, and go to state 1207 handler go to state 1208 handler-seq go to state 1209

State 1141

478 noexcept-specifier NOEXCEPT OPEN_PAREN constant-expression CLOSE_PAREN 479 | NOEXCEPT 480 noexcept-specifier-opt %empty [COMMA, ELLIPSIS, EQ, SEMICOLON, ALIGNAS, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, DEREF, GREATER, TRY, REQUIRES, OVERRIDE] 481 | noexcept-specifier 553 parameters-and-qualifiersOPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt NOEXCEPT shift, and go to state 789 $default reduce using rule 480 (noexcept-specifier-opt) noexcept-specifier go to state 790 noexcept-specifier-opt go to state 1210

State 1142

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 418 member-declaratorIDENTIFIER-opt attribute-specifier-seq-opt COLON constant-expression brace-or-equal-initializer-opt 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 1211 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 1143

325 function-bodyEQ DEFAULT SEMICOLON 326 | EQ DELETE SEMICOLON 596 pure-specifierEQ '0' DELETE shift, and go to state 1006 DEFAULT shift, and go to state 1007 '0' shift, and go to state 1212

State 1144

598 pure-specifier-optpure-specifier $default reduce using rule 598 (pure-specifier-opt)

State 1145

415 member-declaratordeclarator virt-specifier-seq-opt pure-specifier-opt $default reduce using rule 415 (member-declarator)

State 1146

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 118 brace-or-equal-initializer-opt %empty [COMMA, SEMICOLON] 119 | brace-or-equal-initializer 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 415 member-declaratordeclarator virt-specifier-seq-opt pure-specifier-opt 416 | declarator requires-clause 417 | declarator brace-or-equal-initializer-opt 620 requires-clause REQUIRES constraint-logical-or-expression 768 virt-specifier OVERRIDE 769 | FINAL 770 virt-specifier-seq virt-specifier 771 | virt-specifier-seq virt-specifier 772 virt-specifier-seq-opt %empty [COMMA, EQ, SEMICOLON] 773 | virt-specifier-seq EQ shift, and go to state 376 OPEN_BRACE shift, and go to state 378 FINAL shift, and go to state 610 REQUIRES shift, and go to state 379 OVERRIDE shift, and go to state 611 COMMA reduce using rule 118 (brace-or-equal-initializer-opt) COMMA [reduce using rule 772 (virt-specifier-seq-opt)] EQ [reduce using rule 772 (virt-specifier-seq-opt)] SEMICOLON reduce using rule 118 (brace-or-equal-initializer-opt) SEMICOLON [reduce using rule 772 (virt-specifier-seq-opt)] $default reduce using rule 118 (brace-or-equal-initializer-opt) brace-or-equal-initializer go to state 1020 brace-or-equal-initializer-opt go to state 1021 braced-init-list go to state 381 requires-clause go to state 1213 virt-specifier go to state 613 virt-specifier-seq go to state 614 virt-specifier-seq-opt go to state 1214

State 1147

420 member-declarator-listmember-declarator-list COMMA member-declarator $default reduce using rule 420 (member-declarator-list)

State 1148

103 base-specifierattribute-specifier-seq-opt VIRTUAL access-specifier-opt class-or-decltype $default reduce using rule 103 (base-specifier)

State 1149

104 base-specifierattribute-specifier-seq-opt access-specifier VIRTUAL-opt class-or-decltype $default reduce using rule 104 (base-specifier)

State 1150

140 class-or-decltypenested-name-specifier TEMPLATE simple-template-id $default reduce using rule 140 (class-or-decltype)

State 1151

106 base-specifier-listbase-specifier-list COMMA base-specifier ELLIPSIS-opt $default reduce using rule 106 (base-specifier-list)

State 1152

364 initializer-listinitializer-list COMMA initializer-clause ELLIPSIS-opt $default reduce using rule 364 (initializer-list)

State 1153

215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON SEMICOLON shift, and go to state 1215

State 1154

427 module-declarationEXPORT-opt MODULE module-name module-partition-opt attribute-specifier-seq-opt SEMICOLON $default reduce using rule 427 (module-declaration)

State 1155

9 EXTERN-opt %empty [TEMPLATE] 10 | EXTERN 13 INLINE-opt %empty [NAMESPACE] 14 | INLINE 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 71 attribute-declaration attribute-specifier-seq SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, ELLIPSIS, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, USING, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, MULT, COMPL, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 193 declaration block-declaration 194 | nodeclspec-function-declaration 195 | function-definition 196 | template-declaration 197 | deduction-guide 198 | explicit-instantiation 199 | explicit-specialization 200 | export-declaration 201 | linkage-specification 202 | namespace-definition 203 | empty-declaration 204 | attribute-declaration 205 | module-import-declaration 206 declaration-seq declaration 207 | declaration-seq declaration 208 declaration-seq-opt %empty [$end] 209 | declaration-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 215 deduction-guide explicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 233 empty-declaration SEMICOLON 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 264 explicit-instantiation EXTERN-opt TEMPLATE declaration 265 explicit-specialization TEMPLATE LESS GREATER declaration 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 268 explicit-specifier-opt %empty [IDENTIFIER] 269 | explicit-specifier 270 export-declaration EXPORT declaration 271 | EXPORT OPEN_BRACE declaration-seq-opt CLOSE_BRACE 272 | EXPORT module-import-declaration 327 function-definition attribute-specifier-seq-opt decl-specifier-seq-opt declarator virt-specifier-seq-opt function-body 328 | attribute-specifier-seq-opt decl-specifier-seq-opt declarator requires-clause function-body 329 function-specifier VIRTUAL 330 | explicit-specifier 390 linkage-specification EXTERN string-literal OPEN_BRACE declaration-seq-opt CLOSE_BRACE 391 | EXTERN string-literal declaration 428 module-import-declaration IMPORT module-name attribute-specifier-seq-opt SEMICOLON 429 | IMPORT module-partition attribute-specifier-seq-opt SEMICOLON 430 | IMPORT header-name attribute-specifier-seq-opt SEMICOLON 443 named-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 447 namespace-definition named-namespace-definition 448 | unnamed-namespace-definition 449 | nested-namespace-definition 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 460 nested-namespace-definition NAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE 476 nodeclspec-function-declaration attribute-specifier-seq-opt declarator SEMICOLON 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 583 private-module-fragmentMODULE COLON PRIVATE SEMICOLON declaration-seq-opt 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 689 template-declaration template-head declaration 690 | template-head concept-definition 691 template-head TEMPLATE LESS template-parameter-list GREATER requires-clause-opt 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 753 unnamed-namespace-definition INLINE-opt NAMESPACE attribute-specifier-seq-opt OPEN_BRACE namespace-body CLOSE_BRACE 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXPORT shift, and go to state 2 EXTERN shift, and go to state 3 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 5 SCOPE shift, and go to state 6 TEMPLATE shift, and go to state 7 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 SEMICOLON shift, and go to state 11 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 IMPORT shift, and go to state 25 NAMESPACE shift, and go to state 26 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 $end reduce using rule 208 (declaration-seq-opt) CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 268 (explicit-specifier-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TEMPLATE [reduce using rule 9 (EXTERN-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] NAMESPACE [reduce using rule 13 (INLINE-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) EXTERN-opt go to state 45 INLINE-opt go to state 46 alias-declaration go to state 47 asm-declaration go to state 48 attribute-declaration go to state 49 attribute-specifier-seq go to state 50 attribute-specifier-seq-opt go to state 51 block-declaration go to state 52 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration go to state 60 declaration-seq go to state 61 declaration-seq-opt go to state 1216 decltype-specifier go to state 63 deduction-guide go to state 64 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 empty-declaration go to state 68 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-instantiation go to state 73 explicit-specialization go to state 74 explicit-specifier go to state 75 explicit-specifier-opt go to state 76 export-declaration go to state 77 function-definition go to state 78 function-specifier go to state 79 linkage-specification go to state 82 module-import-declaration go to state 83 named-namespace-definition go to state 84 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-definition go to state 87 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 nested-namespace-definition go to state 91 nodeclspec-function-declaration go to state 92 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-declaration go to state 100 template-head go to state 101 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 unnamed-namespace-definition go to state 110 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1156

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 483 noptr-abstract-declaratornoptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1217

State 1157

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 488 noptr-abstract-pack-declaratornoptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1218

State 1158

546 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq abstract-declarator-opt EQ initializer-clause $default reduce using rule 546 (parameter-declaration)

State 1159

544 parameter-declarationattribute-specifier-seq-opt THIS-opt decl-specifier-seq declarator EQ initializer-clause $default reduce using rule 544 (parameter-declaration)

State 1160

287 fold-expressionOPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN CLOSE_PAREN shift, and go to state 1219

State 1161

723 type-requirementTYPENAME nested-name-specifier-opt type-name SEMICOLON SEMICOLON shift, and go to state 1220

State 1162

15 NOEXCEPT-opt %empty [SEMICOLON, DEREF] 16 | NOEXCEPT 148 compound-requirementOPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON NOEXCEPT shift, and go to state 1221 $default reduce using rule 15 (NOEXCEPT-opt) NOEXCEPT-opt go to state 1222

State 1163

461 nested-requirementREQUIRES constraint-expression SEMICOLON $default reduce using rule 461 (nested-requirement)

State 1164

278 expressionexpression COMMA assignment-expression 570 postfix-expressionDYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 1223

State 1165

278 expressionexpression COMMA assignment-expression 571 postfix-expressionSTATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 1224

State 1166

278 expressionexpression COMMA assignment-expression 572 postfix-expressionREINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 1225

State 1167

278 expressionexpression COMMA assignment-expression 573 postfix-expressionCONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 1226

State 1168

120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 467 new-expressionSCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 468 new-initializer OPEN_PAREN expression-list-opt CLOSE_PAREN 469 | braced-init-list 470 new-initializer-opt %empty [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] 471 | new-initializer OPEN_PAREN shift, and go to state 1075 OPEN_BRACE shift, and go to state 378 OPEN_BRACE [reduce using rule 470 (new-initializer-opt)] $default reduce using rule 470 (new-initializer-opt) braced-init-list go to state 1076 new-initializer go to state 1077 new-initializer-opt go to state 1227

State 1169

468 new-initializerOPEN_PAREN expression-list-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 1228

State 1170

494 noptr-new-declaratorOPEN_SQUARE expression-opt CLOSE_SQUARE attribute-specifier-seq-opt CLOSE_SQUARE shift, and go to state 1229

State 1171

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 158 constant-expression conditional-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 495 noptr-new-declaratornoptr-new-declarator OPEN_SQUARE constant-expression CLOSE_SQUARE attribute-specifier-seq-opt 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 307 constant-expression go to state 1230 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 309 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304

State 1172

462 new-declaratorptr-operator new-declarator-opt $default reduce using rule 462 (new-declarator)

State 1173

385 lambda-declaratorOPEN_PAREN parameter-declaration-clause CLOSE_PAREN lambda-specifiers requires-clause-opt $default reduce using rule 385 (lambda-declarator)

State 1174

149 compound-statement OPEN_BRACE statement-seq-opt CLOSE_BRACE 387 lambda-expressionlambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement OPEN_BRACE shift, and go to state 792 compound-statement go to state 1231

State 1175

478 noexcept-specifierNOEXCEPT OPEN_PAREN constant-expression CLOSE_PAREN $default reduce using rule 478 (noexcept-specifier)

State 1176

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 376 | attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1232 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1177

274 expr-or-braced-init-listbraced-init-list $default reduce using rule 274 (expr-or-braced-init-list)

State 1178

276 expr-or-braced-init-list-optexpr-or-braced-init-list $default reduce using rule 276 (expr-or-braced-init-list-opt)

State 1179

171 coroutine-return-statementCO_RETURN expr-or-braced-init-list-opt SEMICOLON SEMICOLON shift, and go to state 1233

State 1180

273 expr-or-braced-init-listexpression [SEMICOLON, CLOSE_PAREN] 278 expressionexpression COMMA assignment-expression COMMA shift, and go to state 532 $default reduce using rule 273 (expr-or-braced-init-list)

State 1181

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1234 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1182

335 handler CATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement 336 handler-seq handler handler-seq-opt 706 try-blockTRY compound-statement handler-seq CATCH shift, and go to state 1207 handler go to state 1208 handler-seq go to state 1235

State 1183

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 152 condition expression 153 | attribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 367 iteration-statementWHILE OPEN_PAREN condition CLOSE_PAREN statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] OPEN_SQUARE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] DELETE reduce using rule 19 (SCOPE-opt) NEW reduce using rule 19 (SCOPE-opt) AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1236 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 condition go to state 1237 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1238 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1184

368 iteration-statementDO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON WHILE shift, and go to state 1239

State 1185

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 277 expression assignment-expression 278 | expression COMMA assignment-expression 282 expression-opt %empty [SEMICOLON] 283 | expression 284 expression-statement expression-opt SEMICOLON 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 329 function-specifier VIRTUAL 330 | explicit-specifier 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 354 init-statement expression-statement 355 | simple-declaration 356 | alias-declaration 357 init-statement-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 358 | init-statement 369 iteration-statementFOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement 370 | FOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 237 INLINE shift, and go to state 150 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 PLUS shift, and go to state 242 MINUS shift, and go to state 243 USING shift, and go to state 1240 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEXPR [reduce using rule 357 (init-statement-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 357 (init-statement-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 357 (init-statement-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] INLINE [reduce using rule 357 (init-statement-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 357 (init-statement-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 357 (init-statement-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 357 (init-statement-opt)] SEMICOLON reduce using rule 282 (expression-opt) ALIGNAS reduce using rule 83 (attribute-specifier-seq-opt) ALIGNAS [reduce using rule 357 (init-statement-opt)] OPEN_SQUARE [reduce using rule 83 (attribute-specifier-seq-opt)] OPEN_SQUARE [reduce using rule 357 (init-statement-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 357 (init-statement-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 357 (init-statement-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 357 (init-statement-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 357 (init-statement-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 357 (init-statement-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 357 (init-statement-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 357 (init-statement-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 357 (init-statement-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 357 (init-statement-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 357 (init-statement-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] ENUM [reduce using rule 357 (init-statement-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 357 (init-statement-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 357 (init-statement-opt)] AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR [reduce using rule 357 (init-statement-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 357 (init-statement-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 357 (init-statement-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 357 (init-statement-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 357 (init-statement-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 357 (init-statement-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 357 (init-statement-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 357 (init-statement-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 357 (init-statement-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 357 (init-statement-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 357 (init-statement-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 357 (init-statement-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 357 (init-statement-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 357 (init-statement-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 357 (init-statement-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 357 (init-statement-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 357 (init-statement-opt)] $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 alias-declaration go to state 1241 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 1242 await-expression go to state 268 cast-expression go to state 269 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 decltype-specifier go to state 63 defining-type-specifier go to state 65 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 equality-expression go to state 274 exclusive-or-expression go to state 275 explicit-specifier go to state 154 expression go to state 1108 expression-opt go to state 1109 expression-statement go to state 1243 fold-expression go to state 277 function-specifier go to state 79 id-expression go to state 278 inclusive-or-expression go to state 279 init-statement go to state 1244 init-statement-opt go to state 1245 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-declaration go to state 1246 simple-template-id go to state 297 simple-type-specifier go to state 407 storage-class-specifier go to state 99 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1186

371 jump-statementBREAK SEMICOLON $default reduce using rule 371 (jump-statement)

State 1187

372 jump-statementCONTINUE SEMICOLON $default reduce using rule 372 (jump-statement)

State 1188

373 jump-statementRETURN expr-or-braced-init-list-opt SEMICOLON SEMICOLON shift, and go to state 1247

State 1189

375 jump-statementGOTO IDENTIFIER SEMICOLON SEMICOLON shift, and go to state 1248

State 1190

377 labeled-statementattribute-specifier-seq-opt CASE constant-expression COLON statement COLON shift, and go to state 1249

State 1191

4 CONSTEXPR-optCONSTEXPR $default reduce using rule 4 (CONSTEXPR-opt)

State 1192

18 NOT-optNOT $default reduce using rule 18 (NOT-opt)

State 1193

627 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement OPEN_PAREN shift, and go to state 1250

State 1194

629 selection-statementIF NOT-opt CONSTEVAL compound-statement 630 | IF NOT-opt CONSTEVAL compound-statement ELSE statement CONSTEVAL shift, and go to state 1251

State 1195

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 277 expression assignment-expression 278 | expression COMMA assignment-expression 282 expression-opt %empty [SEMICOLON] 283 | expression 284 expression-statement expression-opt SEMICOLON 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 329 function-specifier VIRTUAL 330 | explicit-specifier 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 354 init-statement expression-statement 355 | simple-declaration 356 | alias-declaration 357 init-statement-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, CO_AWAIT, CLASS, STRUCT, UNION, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 358 | init-statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 631 selection-statementSWITCH OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 237 INLINE shift, and go to state 150 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 PLUS shift, and go to state 242 MINUS shift, and go to state 243 USING shift, and go to state 1240 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEXPR [reduce using rule 357 (init-statement-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 357 (init-statement-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 357 (init-statement-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] INLINE [reduce using rule 357 (init-statement-opt)] NOEXCEPT [reduce using rule 357 (init-statement-opt)] NOT [reduce using rule 357 (init-statement-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 357 (init-statement-opt)] THIS [reduce using rule 357 (init-statement-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 357 (init-statement-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 357 (init-statement-opt)] PLUS [reduce using rule 357 (init-statement-opt)] MINUS [reduce using rule 357 (init-statement-opt)] SEMICOLON reduce using rule 282 (expression-opt) ALIGNAS reduce using rule 83 (attribute-specifier-seq-opt) ALIGNAS [reduce using rule 357 (init-statement-opt)] OPEN_PAREN [reduce using rule 357 (init-statement-opt)] AND [reduce using rule 357 (init-statement-opt)] OPEN_SQUARE [reduce using rule 83 (attribute-specifier-seq-opt)] OPEN_SQUARE [reduce using rule 357 (init-statement-opt)] CO_AWAIT [reduce using rule 357 (init-statement-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 357 (init-statement-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 357 (init-statement-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 357 (init-statement-opt)] OPERATOR [reduce using rule 357 (init-statement-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 357 (init-statement-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 357 (init-statement-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 357 (init-statement-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 357 (init-statement-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 357 (init-statement-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 357 (init-statement-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 357 (init-statement-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] DELETE reduce using rule 19 (SCOPE-opt) DELETE [reduce using rule 357 (init-statement-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] ENUM [reduce using rule 357 (init-statement-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 357 (init-statement-opt)] MULT [reduce using rule 357 (init-statement-opt)] REQUIRES [reduce using rule 357 (init-statement-opt)] NEW reduce using rule 19 (SCOPE-opt) NEW [reduce using rule 357 (init-statement-opt)] COMPL [reduce using rule 357 (init-statement-opt)] PLUS_PLUS [reduce using rule 357 (init-statement-opt)] MINUS_MINUS [reduce using rule 357 (init-statement-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 357 (init-statement-opt)] AUTO [reduce using rule 709 (type-constraint-opt)] DYNAMIC_CAST [reduce using rule 357 (init-statement-opt)] STATIC_CAST [reduce using rule 357 (init-statement-opt)] REINTERPRET_CAST [reduce using rule 357 (init-statement-opt)] CONST_CAST [reduce using rule 357 (init-statement-opt)] TYPEID [reduce using rule 357 (init-statement-opt)] LITERAL [reduce using rule 357 (init-statement-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR [reduce using rule 357 (init-statement-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 357 (init-statement-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 357 (init-statement-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 357 (init-statement-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 357 (init-statement-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 357 (init-statement-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 357 (init-statement-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 357 (init-statement-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 357 (init-statement-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 357 (init-statement-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 357 (init-statement-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 357 (init-statement-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 357 (init-statement-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 357 (init-statement-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 357 (init-statement-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 357 (init-statement-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 357 (init-statement-opt)] THROW [reduce using rule 357 (init-statement-opt)] SIZEOF [reduce using rule 357 (init-statement-opt)] ALIGNOF [reduce using rule 357 (init-statement-opt)] CO_YIELD [reduce using rule 357 (init-statement-opt)] $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 alias-declaration go to state 1241 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 1242 await-expression go to state 268 cast-expression go to state 269 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 decltype-specifier go to state 63 defining-type-specifier go to state 65 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 equality-expression go to state 274 exclusive-or-expression go to state 275 explicit-specifier go to state 154 expression go to state 1108 expression-opt go to state 1109 expression-statement go to state 1243 fold-expression go to state 277 function-specifier go to state 79 id-expression go to state 278 inclusive-or-expression go to state 279 init-statement go to state 1252 init-statement-opt go to state 1253 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-declaration go to state 1246 simple-template-id go to state 297 simple-type-specifier go to state 407 storage-class-specifier go to state 99 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1196

284 expression-statementexpression-opt SEMICOLON $default reduce using rule 284 (expression-statement)

State 1197

460 nested-namespace-definitionNAMESPACE enclosing-namespace-specifier SCOPE INLINE-opt IDENTIFIER OPEN_BRACE namespace-body CLOSE_BRACE $default reduce using rule 460 (nested-namespace-definition)

State 1198

75 attribute-listattribute-list COMMA attribute ELLIPSIS $default reduce using rule 75 (attribute-list)

State 1199

91 balanced-tokenOPEN_PAREN balanced-token-seq-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 1254

State 1200

92 balanced-tokenOPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE CLOSE_SQUARE shift, and go to state 1255

State 1201

93 balanced-tokenOPEN_BRACE balanced-token-seq-opt CLOSE_BRACE CLOSE_BRACE shift, and go to state 1256

State 1202

96 balanced-token-seqbalanced-token-seq balanced-token $default reduce using rule 96 (balanced-token-seq)

State 1203

68 attribute-argument-clauseOPEN_PAREN balanced-token-seq-opt CLOSE_PAREN $default reduce using rule 68 (attribute-argument-clause)

State 1204

641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON $default reduce using rule 641 (simple-declaration)

State 1205

398 mem-initializermem-initializer-id OPEN_PAREN expression-list-opt CLOSE_PAREN CLOSE_PAREN shift, and go to state 1257

State 1206

5 ELLIPSIS-opt %empty [COMMA, OPEN_BRACE] 6 | ELLIPSIS 403 mem-initializer-listmem-initializer-list COMMA mem-initializer ELLIPSIS-opt ELLIPSIS shift, and go to state 155 $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 1258

State 1207

335 handlerCATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement OPEN_PAREN shift, and go to state 1259

State 1208

335 handler CATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement 336 handler-seq handler handler-seq-opt 336 | handler handler-seq-opt 337 handler-seq-opt %empty [$end, CONSTEXPR, ELLIPSIS, EXPORT, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, TEMPLATE, THIS, TYPENAME, VIRTUAL, PRIVATE, PROTECTED, PUBLIC, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, COLON, CO_AWAIT, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, AND_AND, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, MODULE, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, IMPORT, NAMESPACE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, ELSE, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 338 | handler-seq CATCH shift, and go to state 1207 $default reduce using rule 337 (handler-seq-opt) handler go to state 1208 handler-seq go to state 1260 handler-seq-opt go to state 1261

State 1209

331 function-try-blockTRY ctor-initializer-opt compound-statement handler-seq $default reduce using rule 331 (function-try-block)

State 1210

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 553 parameters-and-qualifiersOPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1262

State 1211

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 118 brace-or-equal-initializer-opt %empty [COMMA, SEMICOLON] 119 | brace-or-equal-initializer 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 418 member-declaratorIDENTIFIER-opt attribute-specifier-seq-opt COLON constant-expression brace-or-equal-initializer-opt EQ shift, and go to state 376 OPEN_BRACE shift, and go to state 378 $default reduce using rule 118 (brace-or-equal-initializer-opt) brace-or-equal-initializer go to state 1020 brace-or-equal-initializer-opt go to state 1263 braced-init-list go to state 381

State 1212

596 pure-specifierEQ '0' $default reduce using rule 596 (pure-specifier)

State 1213

416 member-declaratordeclarator requires-clause $default reduce using rule 416 (member-declarator)

State 1214

415 member-declaratordeclarator virt-specifier-seq-opt pure-specifier-opt 596 pure-specifier EQ '0' 597 pure-specifier-opt %empty [COMMA, SEMICOLON] 598 | pure-specifier EQ shift, and go to state 1264 $default reduce using rule 597 (pure-specifier-opt) pure-specifier go to state 1144 pure-specifier-opt go to state 1145

State 1215

215 deduction-guideexplicit-specifier-opt template-name OPEN_PAREN parameter-declaration-clause CLOSE_PAREN DEREF simple-template-id SEMICOLON $default reduce using rule 215 (deduction-guide)

State 1216

583 private-module-fragmentMODULE COLON PRIVATE SEMICOLON declaration-seq-opt $default reduce using rule 583 (private-module-fragment)

State 1217

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 483 noptr-abstract-declaratornoptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_SQUARE [reduce using rule 483 (noptr-abstract-declarator)] $default reduce using rule 483 (noptr-abstract-declarator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 1218

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 488 noptr-abstract-pack-declaratornoptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, GREATER, TRY, REQUIRES, OVERRIDE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_SQUARE [reduce using rule 488 (noptr-abstract-pack-declarator)] $default reduce using rule 488 (noptr-abstract-pack-declarator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 1219

287 fold-expressionOPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN $default reduce using rule 287 (fold-expression)

State 1220

723 type-requirementTYPENAME nested-name-specifier-opt type-name SEMICOLON $default reduce using rule 723 (type-requirement)

State 1221

16 NOEXCEPT-optNOEXCEPT $default reduce using rule 16 (NOEXCEPT-opt)

State 1222

148 compound-requirementOPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON 624 return-type-requirement DEREF type-constraint 625 return-type-requirement-opt %empty [SEMICOLON] 626 | return-type-requirement DEREF shift, and go to state 1265 $default reduce using rule 625 (return-type-requirement-opt) return-type-requirement go to state 1266 return-type-requirement-opt go to state 1267

State 1223

570 postfix-expressionDYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN $default reduce using rule 570 (postfix-expression)

State 1224

571 postfix-expressionSTATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN $default reduce using rule 571 (postfix-expression)

State 1225

572 postfix-expressionREINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN $default reduce using rule 572 (postfix-expression)

State 1226

573 postfix-expressionCONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN $default reduce using rule 573 (postfix-expression)

State 1227

467 new-expressionSCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt $default reduce using rule 467 (new-expression)

State 1228

468 new-initializerOPEN_PAREN expression-list-opt CLOSE_PAREN $default reduce using rule 468 (new-initializer)

State 1229

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 494 noptr-new-declaratorOPEN_SQUARE expression-opt CLOSE_SQUARE attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1268

State 1230

495 noptr-new-declaratornoptr-new-declarator OPEN_SQUARE constant-expression CLOSE_SQUARE attribute-specifier-seq-opt CLOSE_SQUARE shift, and go to state 1269

State 1231

387 lambda-expressionlambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement $default reduce using rule 387 (lambda-expression)

State 1232

376 labeled-statementattribute-specifier-seq-opt IDENTIFIER COLON statement $default reduce using rule 376 (labeled-statement)

State 1233

171 coroutine-return-statementCO_RETURN expr-or-braced-init-list-opt SEMICOLON $default reduce using rule 171 (coroutine-return-statement)

State 1234

378 labeled-statementattribute-specifier-seq-opt DEFAULT COLON statement $default reduce using rule 378 (labeled-statement)

State 1235

706 try-blockTRY compound-statement handler-seq $default reduce using rule 706 (try-block)

State 1236

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 153 conditionattribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 1270 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 1237

367 iteration-statementWHILE OPEN_PAREN condition CLOSE_PAREN statement CLOSE_PAREN shift, and go to state 1271

State 1238

152 conditionexpression [SEMICOLON, CLOSE_PAREN] 278 expressionexpression COMMA assignment-expression COMMA shift, and go to state 532 $default reduce using rule 152 (condition)

State 1239

368 iteration-statementDO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON OPEN_PAREN shift, and go to state 1272

State 1240

44 alias-declarationUSING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON IDENTIFIER shift, and go to state 122

State 1241

356 init-statementalias-declaration $default reduce using rule 356 (init-statement)

State 1242

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 641 simple-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 1107 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 1243

354 init-statementexpression-statement $default reduce using rule 354 (init-statement)

State 1244

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 152 condition expression 153 | attribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer 154 condition-opt %empty [SEMICOLON] 155 | condition 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 358 init-statement-optinit-statement [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 369 iteration-statementFOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 CONSTEXPR reduce using rule 83 (attribute-specifier-seq-opt) CONSTEXPR [reduce using rule 358 (init-statement-opt)] EXTERN reduce using rule 83 (attribute-specifier-seq-opt) EXTERN [reduce using rule 358 (init-statement-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 358 (init-statement-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE reduce using rule 83 (attribute-specifier-seq-opt) INLINE [reduce using rule 358 (init-statement-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 358 (init-statement-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 358 (init-statement-opt)] VIRTUAL reduce using rule 83 (attribute-specifier-seq-opt) VIRTUAL [reduce using rule 358 (init-statement-opt)] SEMICOLON reduce using rule 154 (condition-opt) ALIGNAS reduce using rule 83 (attribute-specifier-seq-opt) ALIGNAS [reduce using rule 358 (init-statement-opt)] OPEN_SQUARE [reduce using rule 83 (attribute-specifier-seq-opt)] OPEN_SQUARE [reduce using rule 358 (init-statement-opt)] CLASS reduce using rule 83 (attribute-specifier-seq-opt) CLASS [reduce using rule 358 (init-statement-opt)] STRUCT reduce using rule 83 (attribute-specifier-seq-opt) STRUCT [reduce using rule 358 (init-statement-opt)] UNION reduce using rule 83 (attribute-specifier-seq-opt) UNION [reduce using rule 358 (init-statement-opt)] CONST reduce using rule 83 (attribute-specifier-seq-opt) CONST [reduce using rule 358 (init-statement-opt)] VOLATILE reduce using rule 83 (attribute-specifier-seq-opt) VOLATILE [reduce using rule 358 (init-statement-opt)] FRIEND reduce using rule 83 (attribute-specifier-seq-opt) FRIEND [reduce using rule 358 (init-statement-opt)] TYPEDEF reduce using rule 83 (attribute-specifier-seq-opt) TYPEDEF [reduce using rule 358 (init-statement-opt)] CONSTEVAL reduce using rule 83 (attribute-specifier-seq-opt) CONSTEVAL [reduce using rule 358 (init-statement-opt)] CONSTINIT reduce using rule 83 (attribute-specifier-seq-opt) CONSTINIT [reduce using rule 358 (init-statement-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 358 (init-statement-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] DELETE reduce using rule 19 (SCOPE-opt) ENUM reduce using rule 83 (attribute-specifier-seq-opt) ENUM [reduce using rule 358 (init-statement-opt)] EXPLICIT reduce using rule 83 (attribute-specifier-seq-opt) EXPLICIT [reduce using rule 358 (init-statement-opt)] NEW reduce using rule 19 (SCOPE-opt) AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 358 (init-statement-opt)] AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR [reduce using rule 358 (init-statement-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 358 (init-statement-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 358 (init-statement-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 358 (init-statement-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 358 (init-statement-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 358 (init-statement-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 358 (init-statement-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 358 (init-statement-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 358 (init-statement-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 358 (init-statement-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 358 (init-statement-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 358 (init-statement-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 358 (init-statement-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 358 (init-statement-opt)] STATIC reduce using rule 83 (attribute-specifier-seq-opt) STATIC [reduce using rule 358 (init-statement-opt)] THREAD_LOCAL reduce using rule 83 (attribute-specifier-seq-opt) THREAD_LOCAL [reduce using rule 358 (init-statement-opt)] MUTABLE reduce using rule 83 (attribute-specifier-seq-opt) MUTABLE [reduce using rule 358 (init-statement-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1236 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 condition go to state 1273 condition-opt go to state 1274 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1238 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1245

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 320 for-range-declaration attribute-specifier-seq-opt decl-specifier-seq declarator 321 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE 370 iteration-statementFOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1275 for-range-declaration go to state 1276

State 1246

355 init-statementsimple-declaration $default reduce using rule 355 (init-statement)

State 1247

373 jump-statementRETURN expr-or-braced-init-list-opt SEMICOLON $default reduce using rule 373 (jump-statement)

State 1248

375 jump-statementGOTO IDENTIFIER SEMICOLON $default reduce using rule 375 (jump-statement)

State 1249

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1277 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1250

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 277 expression assignment-expression 278 | expression COMMA assignment-expression 282 expression-opt %empty [SEMICOLON] 283 | expression 284 expression-statement expression-opt SEMICOLON 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 329 function-specifier VIRTUAL 330 | explicit-specifier 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 354 init-statement expression-statement 355 | simple-declaration 356 | alias-declaration 357 init-statement-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, CO_AWAIT, CLASS, STRUCT, UNION, OPERATOR, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 358 | init-statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 627 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 237 INLINE shift, and go to state 150 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 PLUS shift, and go to state 242 MINUS shift, and go to state 243 USING shift, and go to state 1240 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 OPERATOR shift, and go to state 248 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEXPR [reduce using rule 357 (init-statement-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 357 (init-statement-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 357 (init-statement-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] INLINE [reduce using rule 357 (init-statement-opt)] NOEXCEPT [reduce using rule 357 (init-statement-opt)] NOT [reduce using rule 357 (init-statement-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 357 (init-statement-opt)] THIS [reduce using rule 357 (init-statement-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 357 (init-statement-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 357 (init-statement-opt)] PLUS [reduce using rule 357 (init-statement-opt)] MINUS [reduce using rule 357 (init-statement-opt)] SEMICOLON reduce using rule 282 (expression-opt) ALIGNAS reduce using rule 83 (attribute-specifier-seq-opt) ALIGNAS [reduce using rule 357 (init-statement-opt)] OPEN_PAREN [reduce using rule 357 (init-statement-opt)] AND [reduce using rule 357 (init-statement-opt)] OPEN_SQUARE [reduce using rule 83 (attribute-specifier-seq-opt)] OPEN_SQUARE [reduce using rule 357 (init-statement-opt)] CO_AWAIT [reduce using rule 357 (init-statement-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 357 (init-statement-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 357 (init-statement-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 357 (init-statement-opt)] OPERATOR [reduce using rule 357 (init-statement-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 357 (init-statement-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 357 (init-statement-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 357 (init-statement-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 357 (init-statement-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 357 (init-statement-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 357 (init-statement-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 357 (init-statement-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] DELETE reduce using rule 19 (SCOPE-opt) DELETE [reduce using rule 357 (init-statement-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] ENUM [reduce using rule 357 (init-statement-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 357 (init-statement-opt)] MULT [reduce using rule 357 (init-statement-opt)] REQUIRES [reduce using rule 357 (init-statement-opt)] NEW reduce using rule 19 (SCOPE-opt) NEW [reduce using rule 357 (init-statement-opt)] COMPL [reduce using rule 357 (init-statement-opt)] PLUS_PLUS [reduce using rule 357 (init-statement-opt)] MINUS_MINUS [reduce using rule 357 (init-statement-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 357 (init-statement-opt)] AUTO [reduce using rule 709 (type-constraint-opt)] DYNAMIC_CAST [reduce using rule 357 (init-statement-opt)] STATIC_CAST [reduce using rule 357 (init-statement-opt)] REINTERPRET_CAST [reduce using rule 357 (init-statement-opt)] CONST_CAST [reduce using rule 357 (init-statement-opt)] TYPEID [reduce using rule 357 (init-statement-opt)] LITERAL [reduce using rule 357 (init-statement-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR [reduce using rule 357 (init-statement-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 357 (init-statement-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 357 (init-statement-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 357 (init-statement-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 357 (init-statement-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 357 (init-statement-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 357 (init-statement-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 357 (init-statement-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 357 (init-statement-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 357 (init-statement-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 357 (init-statement-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 357 (init-statement-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 357 (init-statement-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 357 (init-statement-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 357 (init-statement-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 357 (init-statement-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 357 (init-statement-opt)] THROW [reduce using rule 357 (init-statement-opt)] SIZEOF [reduce using rule 357 (init-statement-opt)] ALIGNOF [reduce using rule 357 (init-statement-opt)] CO_YIELD [reduce using rule 357 (init-statement-opt)] $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 alias-declaration go to state 1241 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 1242 await-expression go to state 268 cast-expression go to state 269 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 decltype-specifier go to state 63 defining-type-specifier go to state 65 delete-expression go to state 273 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 equality-expression go to state 274 exclusive-or-expression go to state 275 explicit-specifier go to state 154 expression go to state 1108 expression-opt go to state 1109 expression-statement go to state 1243 fold-expression go to state 277 function-specifier go to state 79 id-expression go to state 278 inclusive-or-expression go to state 279 init-statement go to state 1252 init-statement-opt go to state 1278 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-declaration go to state 1246 simple-template-id go to state 297 simple-type-specifier go to state 407 storage-class-specifier go to state 99 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 414 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1251

149 compound-statement OPEN_BRACE statement-seq-opt CLOSE_BRACE 629 selection-statementIF NOT-opt CONSTEVAL compound-statement 630 | IF NOT-opt CONSTEVAL compound-statement ELSE statement OPEN_BRACE shift, and go to state 792 compound-statement go to state 1279

State 1252

358 init-statement-optinit-statement $default reduce using rule 358 (init-statement-opt)

State 1253

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 152 condition expression 153 | attribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 631 selection-statementSWITCH OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] OPEN_SQUARE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] DELETE reduce using rule 19 (SCOPE-opt) NEW reduce using rule 19 (SCOPE-opt) AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1236 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 condition go to state 1280 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1238 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1254

91 balanced-tokenOPEN_PAREN balanced-token-seq-opt CLOSE_PAREN $default reduce using rule 91 (balanced-token)

State 1255

92 balanced-tokenOPEN_SQUARE balanced-token-seq-opt CLOSE_SQUARE $default reduce using rule 92 (balanced-token)

State 1256

93 balanced-tokenOPEN_BRACE balanced-token-seq-opt CLOSE_BRACE $default reduce using rule 93 (balanced-token)

State 1257

398 mem-initializermem-initializer-id OPEN_PAREN expression-list-opt CLOSE_PAREN $default reduce using rule 398 (mem-initializer)

State 1258

403 mem-initializer-listmem-initializer-list COMMA mem-initializer ELLIPSIS-opt $default reduce using rule 403 (mem-initializer-list)

State 1259

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [IDENTIFIER, SCOPE, TYPENAME, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, DECLTYPE, ENUM, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID] 84 | attribute-specifier-seq 259 exception-declaration attribute-specifier-seq-opt type-specifier-seq declarator 260 | attribute-specifier-seq-opt type-specifier-seq abstract-declarator-opt 261 | ELLIPSIS 335 handlerCATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement ELLIPSIS shift, and go to state 1281 $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1282 exception-declaration go to state 1283

State 1260

338 handler-seq-opthandler-seq $default reduce using rule 338 (handler-seq-opt)

State 1261

336 handler-seqhandler handler-seq-opt $default reduce using rule 336 (handler-seq)

State 1262

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 553 parameters-and-qualifiersOPEN_PAREN parameter-declaration-clause CLOSE_PAREN cv-qualifier-seq-opt ref-qualifier-opt noexcept-specifier-opt attribute-specifier-seq-opt [COMMA, ELLIPSIS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, OPEN_SQUARE, COLON, OPEN_BRACE, FINAL, DEREF, GREATER, TRY, REQUIRES, OVERRIDE] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_SQUARE [reduce using rule 553 (parameters-and-qualifiers)] $default reduce using rule 553 (parameters-and-qualifiers) alignment-specifier go to state 165 attribute-specifier go to state 166

State 1263

418 member-declaratorIDENTIFIER-opt attribute-specifier-seq-opt COLON constant-expression brace-or-equal-initializer-opt $default reduce using rule 418 (member-declarator)

State 1264

596 pure-specifierEQ '0' '0' shift, and go to state 1212

State 1265

137 class-name IDENTIFIER 138 | simple-template-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 624 return-type-requirementDEREF type-constraint 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 DECLTYPE shift, and go to state 21 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] class-name go to state 55 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 132 nested-name-specifier-opt go to state 220 simple-template-id go to state 96 template-name go to state 102 type-constraint go to state 1284 type-name go to state 106 typedef-name go to state 108

State 1266

626 return-type-requirement-optreturn-type-requirement $default reduce using rule 626 (return-type-requirement-opt)

State 1267

148 compound-requirementOPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON SEMICOLON shift, and go to state 1285

State 1268

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 494 noptr-new-declaratorOPEN_SQUARE expression-opt CLOSE_SQUARE attribute-specifier-seq-opt [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_SQUARE [reduce using rule 494 (noptr-new-declarator)] $default reduce using rule 494 (noptr-new-declarator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 1269

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty 84 | attribute-specifier-seq 495 noptr-new-declaratornoptr-new-declarator OPEN_SQUARE constant-expression CLOSE_SQUARE attribute-specifier-seq-opt $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1286

State 1270

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 153 conditionattribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator go to state 1287 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 172 ptr-declarator go to state 173 ptr-operator go to state 174 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1271

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 367 iteration-statementWHILE OPEN_PAREN condition CLOSE_PAREN statement 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1288 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1272

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 368 iteration-statementDO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1289 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1273

155 condition-optcondition $default reduce using rule 155 (condition-opt)

State 1274

369 iteration-statementFOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement SEMICOLON shift, and go to state 1290

State 1275

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 320 for-range-declarationattribute-specifier-seq-opt decl-specifier-seq declarator 321 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE 329 function-specifier VIRTUAL 330 | explicit-specifier 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 1291 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 153 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109

State 1276

370 iteration-statementFOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement COLON shift, and go to state 1292

State 1277

377 labeled-statementattribute-specifier-seq-opt CASE constant-expression COLON statement $default reduce using rule 377 (labeled-statement)

State 1278

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, SCOPE, TYPENAME, VIRTUAL, ALIGNAS, OPEN_SQUARE, CLASS, STRUCT, UNION, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, ENUM, EXPLICIT, AUTO, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE] 84 | attribute-specifier-seq 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 152 condition expression 153 | attribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 627 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] OPEN_SQUARE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] DELETE reduce using rule 19 (SCOPE-opt) NEW reduce using rule 19 (SCOPE-opt) AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 1236 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 condition go to state 1293 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1238 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1279

629 selection-statementIF NOT-opt CONSTEVAL compound-statement [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, NAMESPACE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, ELSE, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 630 | IF NOT-opt CONSTEVAL compound-statement ELSE statement ELSE shift, and go to state 1294 ELSE [reduce using rule 629 (selection-statement)] $default reduce using rule 629 (selection-statement)

State 1280

631 selection-statementSWITCH OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement CLOSE_PAREN shift, and go to state 1295

State 1281

261 exception-declarationELLIPSIS $default reduce using rule 261 (exception-declaration)

State 1282

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 175 cv-qualifier CONST 176 | VOLATILE 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 246 enum-name IDENTIFIER 259 exception-declarationattribute-specifier-seq-opt type-specifier-seq declarator 260 | attribute-specifier-seq-opt type-specifier-seq abstract-declarator-opt 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 728 type-specifier-seq type-specifier attribute-specifier-seq-opt 729 | type-specifier type-specifier-seq 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 124 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] $default reduce using rule 709 (type-constraint-opt) alignment-specifier go to state 165 attribute-specifier go to state 166 class-key go to state 404 class-name go to state 55 cv-qualifier go to state 57 decltype-specifier go to state 63 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 placeholder-type-specifier go to state 94 simple-template-id go to state 96 simple-type-specifier go to state 97 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 412 type-specifier-seq go to state 1296 typedef-name go to state 108 typename-specifier go to state 109

State 1283

335 handlerCATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement CLOSE_PAREN shift, and go to state 1297

State 1284

624 return-type-requirementDEREF type-constraint $default reduce using rule 624 (return-type-requirement)

State 1285

148 compound-requirementOPEN_BRACE expression CLOSE_BRACE NOEXCEPT-opt return-type-requirement-opt SEMICOLON $default reduce using rule 148 (compound-requirement)

State 1286

45 alignment-specifier ALIGNAS OPEN_PAREN type-id ELLIPSIS-opt CLOSE_PAREN 46 | ALIGNAS OPEN_PAREN constant-expression ELLIPSIS-opt CLOSE_PAREN 80 attribute-specifier OPEN_SQUARE OPEN_SQUARE attribute-using-prefix-opt attribute-list CLOSE_SQUARE CLOSE_SQUARE 81 | alignment-specifier 82 attribute-specifier-seqattribute-specifier-seq-opt attribute-specifier 495 noptr-new-declaratornoptr-new-declarator OPEN_SQUARE constant-expression CLOSE_SQUARE attribute-specifier-seq-opt [COMMA, ELLIPSIS, PLUS, MINUS, EQ, SEMICOLON, OPEN_PAREN, CLOSE_PAREN, AND, MULT_EQ, DIV_EQ, MOD_EQ, PLUS_EQ, MINUS_EQ, RSHIFT_EQ, LSHIFT_EQ, AND_EQ, XOR_EQ, OR_EQ, OPEN_SQUARE, CLOSE_SQUARE, COLON, OPEN_BRACE, CLOSE_BRACE, SPACESHIP, QUERY, AND_AND, OR_OR, EQ_EQ, NOT_EQ, XOR, LESS, GREATER, MULT, DIV, MOD, OR, LSHIFT, RSHIFT, LESS_EQ, GREATER_EQ, DOT_STAR, DEREF_STAR] ALIGNAS shift, and go to state 157 OPEN_SQUARE shift, and go to state 161 OPEN_SQUARE [reduce using rule 495 (noptr-new-declarator)] $default reduce using rule 495 (noptr-new-declarator) alignment-specifier go to state 165 attribute-specifier go to state 166

State 1287

116 brace-or-equal-initializer EQ initializer-clause 117 | braced-init-list 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 153 conditionattribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer EQ shift, and go to state 376 OPEN_BRACE shift, and go to state 378 brace-or-equal-initializer go to state 1298 braced-init-list go to state 381

State 1288

367 iteration-statementWHILE OPEN_PAREN condition CLOSE_PAREN statement $default reduce using rule 367 (iteration-statement)

State 1289

278 expressionexpression COMMA assignment-expression 368 iteration-statementDO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON COMMA shift, and go to state 532 CLOSE_PAREN shift, and go to state 1299

State 1290

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 277 expression assignment-expression 278 | expression COMMA assignment-expression 282 expression-opt %empty [CLOSE_PAREN] 283 | expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 369 iteration-statementFOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] CLOSE_PAREN reduce using rule 282 (expression-opt) DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expression go to state 1108 expression-opt go to state 1300 fold-expression go to state 277 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1291

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 320 for-range-declarationattribute-specifier-seq-opt decl-specifier-seq declarator 321 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 601 ref-qualifier AND 602 | AND_AND 603 ref-qualifier-opt %empty [OPEN_SQUARE] 604 | ref-qualifier 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 155 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 158 AND shift, and go to state 1301 AND_AND shift, and go to state 1302 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] OPEN_SQUARE reduce using rule 603 (ref-qualifier-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 class-name go to state 55 declarator go to state 1303 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-declarator go to state 172 ptr-declarator go to state 173 ptr-operator go to state 174 ref-qualifier go to state 339 ref-qualifier-opt go to state 1304 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1292

19 SCOPE-opt %empty [DELETE, NEW] 20 | SCOPE 41 additive-expression multiplicative-expression 42 | additive-expression PLUS multiplicative-expression 43 | additive-expression MINUS multiplicative-expression 47 and-expression equality-expression 48 | and-expression AND equality-expression 50 assignment-expression conditional-expression 51 | yield-expression 52 | throw-expression 53 | logical-or-expression assignment-operator initializer-clause 90 await-expression CO_AWAIT cast-expression 120 braced-init-list OPEN_BRACE initializer-list COMMA-opt CLOSE_BRACE 121 | OPEN_BRACE designated-initializer-list COMMA-opt CLOSE_BRACE 122 | OPEN_BRACE CLOSE_BRACE 129 cast-expression unary-expression 130 | OPEN_PAREN type-id CLOSE_PAREN cast-expression 137 class-name IDENTIFIER 138 | simple-template-id 146 compare-expression shift-expression 147 | compare-expression SPACESHIP shift-expression 156 conditional-expression logical-or-expression 157 | logical-or-expression QUERY expression COLON assignment-expression 169 conversion-function-id OPERATOR conversion-type-id 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 222 delete-expression SCOPE-opt DELETE cast-expression 223 | SCOPE-opt DELETE OPEN_SQUARE CLOSE_SQUARE cast-expression 246 enum-name IDENTIFIER 256 equality-expression relational-expression 257 | equality-expression EQ_EQ relational-expression 258 | equality-expression NOT_EQ relational-expression 262 exclusive-or-expression and-expression 263 | exclusive-or-expression XOR and-expression 273 expr-or-braced-init-list expression 274 | braced-init-list 277 expression assignment-expression 278 | expression COMMA assignment-expression 285 fold-expression OPEN_PAREN cast-expression fold-operator ELLIPSIS CLOSE_PAREN 286 | OPEN_PAREN ELLIPSIS fold-operator cast-expression CLOSE_PAREN 287 | OPEN_PAREN cast-expression fold-operator ELLIPSIS fold-operator cast-expression CLOSE_PAREN 322 for-range-initializer expr-or-braced-init-list 340 id-expression unqualified-id 341 | qualified-id 344 inclusive-or-expression exclusive-or-expression 345 | inclusive-or-expression OR exclusive-or-expression 370 iteration-statementFOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement 386 lambda-expression lambda-introducer lambda-declarator compound-statement 387 | lambda-introducer LESS template-parameter-list GREATER requires-clause-opt lambda-declarator compound-statement 388 lambda-introducer OPEN_SQUARE lambda-capture-opt CLOSE_SQUARE 392 literal-operator-id OPERATOR string-literal IDENTIFIER 393 | OPERATOR user-defined-string-literal 394 logical-and-expression inclusive-or-expression 395 | logical-and-expression AND_AND inclusive-or-expression 396 logical-or-expression logical-and-expression 397 | logical-or-expression OR_OR logical-and-expression 439 multiplicative-expression pm-expression 440 | multiplicative-expression MULT pm-expression 441 | multiplicative-expression DIV pm-expression 442 | multiplicative-expression MOD pm-expression 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 466 new-expression SCOPE-opt NEW new-placement-opt new-type-id new-initializer-opt 467 | SCOPE-opt NEW new-placement-opt OPEN_PAREN type-id CLOSE_PAREN new-initializer-opt 477 noexcept-expression NOEXCEPT OPEN_PAREN expression CLOSE_PAREN 497 operator-function-id OPERATOR overloadable-operator 498 | OPERATOR overloadable-operator LESS template-argument-list-opt GREATER 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 556 pm-expression cast-expression 557 | pm-expression DOT_STAR cast-expression 558 | pm-expression DEREF_STAR cast-expression 559 postfix-expression primary-expression 560 | postfix-expression OPEN_SQUARE expression-list-opt CLOSE_SQUARE 561 | postfix-expression OPEN_PAREN expression-list-opt CLOSE_PAREN 562 | simple-type-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 563 | typename-specifier OPEN_PAREN expression-list-opt CLOSE_PAREN 564 | simple-type-specifier braced-init-list 565 | typename-specifier braced-init-list 566 | postfix-expression DOT TEMPLATE-opt id-expression 567 | postfix-expression DEREF TEMPLATE-opt id-expression 568 | postfix-expression PLUS_PLUS 569 | postfix-expression MINUS_MINUS 570 | DYNAMIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 571 | STATIC_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 572 | REINTERPRET_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 573 | CONST_CAST LESS type-id GREATER OPEN_PAREN expression CLOSE_PAREN 574 | TYPEID OPEN_PAREN expression CLOSE_PAREN 575 | TYPEID OPEN_PAREN type-id CLOSE_PAREN 576 primary-expression LITERAL 577 | THIS 578 | OPEN_PAREN expression CLOSE_PAREN 579 | id-expression 580 | lambda-expression 581 | fold-expression 582 | requires-expression 599 qualified-id nested-name-specifier TEMPLATE-opt unqualified-id 605 relational-expression compare-expression 606 | relational-expression LESS compare-expression 607 | relational-expression GREATER compare-expression 608 | relational-expression LESS_EQ compare-expression 609 | relational-expression GREATER_EQ compare-expression 623 requires-expression REQUIRES requirement-parameter-list-opt requirement-body 632 shift-expression additive-expression 633 | shift-expression LSHIFT additive-expression 634 | shift-expression RSHIFT additive-expression 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 692 template-id simple-template-id 693 | operator-function-id LESS template-argument-list-opt GREATER 694 | literal-operator-id LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 700 throw-expression THROW assignment-expression-opt 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 735 unary-expression postfix-expression 736 | unary-operator cast-expression 737 | PLUS_PLUS cast-expression 738 | MINUS_MINUS cast-expression 739 | await-expression 740 | SIZEOF unary-expression 741 | SIZEOF OPEN_PAREN type-id CLOSE_PAREN 742 | SIZEOF ELLIPSIS OPEN_PAREN IDENTIFIER CLOSE_PAREN 743 | ALIGNOF OPEN_PAREN type-id CLOSE_PAREN 744 | noexcept-expression 745 | new-expression 746 | delete-expression 747 unary-operator MULT 748 | AND 749 | PLUS 750 | MINUS 751 | NOT 752 | COMPL 754 unqualified-id IDENTIFIER 755 | operator-function-id 756 | conversion-function-id 757 | literal-operator-id 758 | COMPL type-name 759 | COMPL decltype-specifier 760 | template-id 774 yield-expression CO_YIELD assignment-expression 775 | CO_YIELD braced-init-list IDENTIFIER shift, and go to state 237 NOEXCEPT shift, and go to state 238 NOT shift, and go to state 239 SCOPE shift, and go to state 240 THIS shift, and go to state 241 TYPENAME shift, and go to state 8 PLUS shift, and go to state 242 MINUS shift, and go to state 243 OPEN_PAREN shift, and go to state 244 AND shift, and go to state 245 OPEN_SQUARE shift, and go to state 246 CO_AWAIT shift, and go to state 247 OPEN_BRACE shift, and go to state 378 OPERATOR shift, and go to state 248 DECLTYPE shift, and go to state 21 MULT shift, and go to state 249 REQUIRES shift, and go to state 250 COMPL shift, and go to state 251 PLUS_PLUS shift, and go to state 252 MINUS_MINUS shift, and go to state 253 DYNAMIC_CAST shift, and go to state 254 STATIC_CAST shift, and go to state 255 REINTERPRET_CAST shift, and go to state 256 CONST_CAST shift, and go to state 257 TYPEID shift, and go to state 258 LITERAL shift, and go to state 259 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 THROW shift, and go to state 260 SIZEOF shift, and go to state 261 ALIGNOF shift, and go to state 262 CO_YIELD shift, and go to state 263 IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] AUTO reduce using rule 709 (type-constraint-opt) $default reduce using rule 19 (SCOPE-opt) SCOPE-opt go to state 264 additive-expression go to state 265 and-expression go to state 266 assignment-expression go to state 267 await-expression go to state 268 braced-init-list go to state 1177 cast-expression go to state 269 class-name go to state 55 compare-expression go to state 270 conditional-expression go to state 271 conversion-function-id go to state 272 decltype-specifier go to state 63 delete-expression go to state 273 enum-name go to state 71 equality-expression go to state 274 exclusive-or-expression go to state 275 expr-or-braced-init-list go to state 1305 expression go to state 1180 fold-expression go to state 277 for-range-initializer go to state 1306 id-expression go to state 278 inclusive-or-expression go to state 279 lambda-expression go to state 280 lambda-introducer go to state 281 literal-operator-id go to state 282 logical-and-expression go to state 283 logical-or-expression go to state 284 multiplicative-expression go to state 285 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 286 nested-name-specifier-opt go to state 90 new-expression go to state 287 noexcept-expression go to state 288 operator-function-id go to state 289 placeholder-type-specifier go to state 94 pm-expression go to state 290 postfix-expression go to state 291 primary-expression go to state 292 qualified-id go to state 293 relational-expression go to state 294 requires-expression go to state 295 shift-expression go to state 296 simple-template-id go to state 297 simple-type-specifier go to state 298 template-id go to state 299 template-name go to state 102 throw-expression go to state 300 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 typedef-name go to state 108 typename-specifier go to state 301 unary-expression go to state 302 unary-operator go to state 303 unqualified-id go to state 304 yield-expression go to state 305

State 1293

627 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement CLOSE_PAREN shift, and go to state 1307

State 1294

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 630 selection-statementIF NOT-opt CONSTEVAL compound-statement ELSE statement 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1308 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1295

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 631 selection-statementSWITCH OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1309 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1296

5 ELLIPSIS-opt %empty [IDENTIFIER, SCOPE, OPERATOR, DECLTYPE, COMPL] 6 | ELLIPSIS 29 abstract-declarator ptr-abstract-declarator 30 | noptr-abstract-declarator-opt parameters-and-qualifiers trailing-return-type 31 | abstract-pack-declarator 32 abstract-declarator-opt %empty [CLOSE_PAREN] 33 | abstract-declarator 34 abstract-pack-declarator noptr-abstract-pack-declarator 35 | ptr-operator abstract-pack-declarator 137 class-name IDENTIFIER 138 | simple-template-id 211 declarator ptr-declarator 212 | noptr-declarator parameters-and-qualifiers trailing-return-type 213 declarator-id ELLIPSIS-opt id-expression 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 246 enum-name IDENTIFIER 259 exception-declarationattribute-specifier-seq-opt type-specifier-seq declarator 260 | attribute-specifier-seq-opt type-specifier-seq abstract-declarator-opt 444 namespace-alias IDENTIFIER 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 482 noptr-abstract-declarator noptr-abstract-declarator-opt parameters-and-qualifiers 483 | noptr-abstract-declarator-opt OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 484 | OPEN_PAREN ptr-abstract-declarator CLOSE_PAREN 485 noptr-abstract-declarator-opt %empty [OPEN_PAREN, OPEN_SQUARE] 486 | noptr-abstract-declarator 487 noptr-abstract-pack-declarator noptr-abstract-pack-declarator parameters-and-qualifiers 488 | noptr-abstract-pack-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 489 | ELLIPSIS 490 noptr-declarator declarator-id attribute-specifier-seq-opt 491 | noptr-declarator parameters-and-qualifiers 492 | noptr-declarator OPEN_SQUARE constant-expression-opt CLOSE_SQUARE attribute-specifier-seq-opt 493 | OPEN_PAREN ptr-declarator CLOSE_PAREN 586 ptr-abstract-declarator noptr-abstract-declarator 587 | ptr-operator ptr-abstract-declarator-opt 590 ptr-declarator noptr-declarator 591 | ptr-operator ptr-declarator 592 ptr-operator MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 593 | AND attribute-specifier-seq-opt 594 | AND_AND attribute-specifier-seq-opt 595 | nested-name-specifier MULT attribute-specifier-seq-opt cv-qualifier-seq-opt 643 simple-template-id template-name LESS template-argument-list-opt GREATER 695 template-name IDENTIFIER 712 type-name class-name 713 | enum-name 714 | typedef-name 730 typedef-name IDENTIFIER 731 | simple-template-id ELLIPSIS shift, and go to state 914 IDENTIFIER shift, and go to state 4 SCOPE shift, and go to state 6 OPEN_PAREN shift, and go to state 915 AND shift, and go to state 159 AND_AND shift, and go to state 162 DECLTYPE shift, and go to state 21 MULT shift, and go to state 163 IDENTIFIER [reduce using rule 5 (ELLIPSIS-opt)] SCOPE [reduce using rule 5 (ELLIPSIS-opt)] OPEN_PAREN [reduce using rule 485 (noptr-abstract-declarator-opt)] CLOSE_PAREN reduce using rule 32 (abstract-declarator-opt) OPEN_SQUARE reduce using rule 485 (noptr-abstract-declarator-opt) DECLTYPE [reduce using rule 5 (ELLIPSIS-opt)] $default reduce using rule 5 (ELLIPSIS-opt) ELLIPSIS-opt go to state 164 abstract-declarator go to state 682 abstract-declarator-opt go to state 1310 abstract-pack-declarator go to state 684 class-name go to state 55 declarator go to state 1311 declarator-id go to state 170 decltype-specifier go to state 120 enum-name go to state 71 namespace-alias go to state 85 namespace-name go to state 88 nested-name-specifier go to state 186 noptr-abstract-declarator go to state 685 noptr-abstract-declarator-opt go to state 686 noptr-abstract-pack-declarator go to state 687 noptr-declarator go to state 172 ptr-abstract-declarator go to state 688 ptr-declarator go to state 173 ptr-operator go to state 918 simple-template-id go to state 96 template-name go to state 102 type-name go to state 106 typedef-name go to state 108

State 1297

149 compound-statement OPEN_BRACE statement-seq-opt CLOSE_BRACE 335 handlerCATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement OPEN_BRACE shift, and go to state 792 compound-statement go to state 1312

State 1298

153 conditionattribute-specifier-seq-opt decl-specifier-seq declarator brace-or-equal-initializer $default reduce using rule 153 (condition)

State 1299

368 iteration-statementDO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON SEMICOLON shift, and go to state 1313

State 1300

369 iteration-statementFOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement CLOSE_PAREN shift, and go to state 1314

State 1301

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [ELLIPSIS, IDENTIFIER, SCOPE, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, AND_AND, OPERATOR, DECLTYPE, MULT, COMPL] 84 | attribute-specifier-seq 593 ptr-operatorAND attribute-specifier-seq-opt 601 ref-qualifierAND [OPEN_SQUARE] OPEN_SQUARE reduce using rule 83 (attribute-specifier-seq-opt) OPEN_SQUARE [reduce using rule 601 (ref-qualifier)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 329

State 1302

82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [ELLIPSIS, IDENTIFIER, SCOPE, ALIGNAS, OPEN_PAREN, AND, OPEN_SQUARE, AND_AND, OPERATOR, DECLTYPE, MULT, COMPL] 84 | attribute-specifier-seq 594 ptr-operatorAND_AND attribute-specifier-seq-opt 602 ref-qualifierAND_AND [OPEN_SQUARE] OPEN_SQUARE reduce using rule 83 (attribute-specifier-seq-opt) OPEN_SQUARE [reduce using rule 602 (ref-qualifier)] $default reduce using rule 83 (attribute-specifier-seq-opt) attribute-specifier-seq go to state 176 attribute-specifier-seq-opt go to state 332

State 1303

320 for-range-declarationattribute-specifier-seq-opt decl-specifier-seq declarator $default reduce using rule 320 (for-range-declaration)

State 1304

321 for-range-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE OPEN_SQUARE shift, and go to state 1315

State 1305

322 for-range-initializerexpr-or-braced-init-list $default reduce using rule 322 (for-range-initializer)

State 1306

370 iteration-statementFOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement CLOSE_PAREN shift, and go to state 1316

State 1307

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 627 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1317 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1308

630 selection-statementIF NOT-opt CONSTEVAL compound-statement ELSE statement $default reduce using rule 630 (selection-statement)

State 1309

631 selection-statementSWITCH OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement $default reduce using rule 631 (selection-statement)

State 1310

260 exception-declarationattribute-specifier-seq-opt type-specifier-seq abstract-declarator-opt $default reduce using rule 260 (exception-declaration)

State 1311

259 exception-declarationattribute-specifier-seq-opt type-specifier-seq declarator $default reduce using rule 259 (exception-declaration)

State 1312

335 handlerCATCH OPEN_PAREN exception-declaration CLOSE_PAREN compound-statement $default reduce using rule 335 (handler)

State 1313

368 iteration-statementDO statement WHILE OPEN_PAREN expression CLOSE_PAREN SEMICOLON $default reduce using rule 368 (iteration-statement)

State 1314

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 369 iteration-statementFOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1318 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1315

321 for-range-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE 342 identifier-list IDENTIFIER 343 | identifier-list COMMA IDENTIFIER IDENTIFIER shift, and go to state 844 identifier-list go to state 1319

State 1316

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 370 iteration-statementFOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1320 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1317

627 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLOSE_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, NAMESPACE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, ELSE, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC_ASSERT, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 628 | IF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement ELSE shift, and go to state 1321 ELSE [reduce using rule 627 (selection-statement)] $default reduce using rule 627 (selection-statement)

State 1318

369 iteration-statementFOR OPEN_PAREN init-statement condition-opt SEMICOLON expression-opt CLOSE_PAREN statement $default reduce using rule 369 (iteration-statement)

State 1319

321 for-range-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE 343 identifier-listidentifier-list COMMA IDENTIFIER COMMA shift, and go to state 1004 CLOSE_SQUARE shift, and go to state 1322

State 1320

370 iteration-statementFOR OPEN_PAREN init-statement-opt for-range-declaration COLON for-range-initializer CLOSE_PAREN statement $default reduce using rule 370 (iteration-statement)

State 1321

44 alias-declaration USING IDENTIFIER attribute-specifier-seq-opt EQ defining-type-id SEMICOLON 49 asm-declaration attribute-specifier-seq-opt ASM OPEN_PAREN string-literal CLOSE_PAREN SEMICOLON 82 attribute-specifier-seq attribute-specifier-seq-opt attribute-specifier 83 attribute-specifier-seq-opt %empty [CONSTEXPR, EXTERN, IDENTIFIER, INLINE, NOEXCEPT, NOT, SCOPE, THIS, TYPENAME, VIRTUAL, PLUS, MINUS, USING, SEMICOLON, ALIGNAS, OPEN_PAREN, AND, ASM, OPEN_SQUARE, CO_AWAIT, OPEN_BRACE, CLASS, STRUCT, UNION, OPERATOR, CO_RETURN, CONST, VOLATILE, FRIEND, TYPEDEF, CONSTEVAL, CONSTINIT, DECLTYPE, DELETE, ENUM, EXPLICIT, MULT, DEFAULT, TRY, WHILE, DO, FOR, BREAK, CONTINUE, RETURN, GOTO, CASE, REQUIRES, NEW, COMPL, PLUS_PLUS, MINUS_MINUS, AUTO, DYNAMIC_CAST, STATIC_CAST, REINTERPRET_CAST, CONST_CAST, TYPEID, LITERAL, IF, SWITCH, CHAR, CHAR8_T, CHAR16_T, CHAR32_T, WCHAR_T, BOOL, SHORT, INT, LONG, SIGNED, UNSIGNED, FLOAT, DOUBLE, VOID, STATIC, THREAD_LOCAL, MUTABLE, THROW, SIZEOF, ALIGNOF, CO_YIELD] 84 | attribute-specifier-seq 107 block-declaration simple-declaration 108 | asm-declaration 109 | namespace-alias-definition 110 | using-declaration 111 | using-enum-declaration 112 | using-directive 113 | static_assert-declaration 114 | alias-declaration 115 | opaque-enum-declaration 131 class-head class-key attribute-specifier-seq-opt class-head-name class-virt-specifier-opt base-clause-opt 132 | class-key attribute-specifier-seq-opt base-clause-opt 134 class-key CLASS 135 | STRUCT 136 | UNION 137 class-name IDENTIFIER 138 | simple-template-id 142 class-specifier class-head OPEN_BRACE member-specification-opt CLOSE_BRACE 175 cv-qualifier CONST 176 | VOLATILE 180 decl-specifier storage-class-specifier 181 | defining-type-specifier 182 | function-specifier 183 | FRIEND 184 | TYPEDEF 185 | CONSTEXPR 186 | CONSTEVAL 187 | CONSTINIT 188 | INLINE 189 decl-specifier-seq decl-specifier attribute-specifier-seq-opt 190 | decl-specifier decl-specifier-seq 210 declaration-statement block-declaration 214 decltype-specifier DECLTYPE OPEN_PAREN expression CLOSE_PAREN 217 defining-type-specifier type-specifier 218 | class-specifier 219 | enum-specifier 228 elaborated-enum-specifier ENUM nested-name-specifier-opt IDENTIFIER 229 elaborated-type-specifier class-key attribute-specifier-seq-opt nested-name-specifier-opt IDENTIFIER 230 | class-key simple-template-id 231 | class-key nested-name-specifier TEMPLATE-opt simple-template-id 232 | elaborated-enum-specifier 239 enum-head enum-key attribute-specifier-seq-opt enum-head-name-opt enum-base-opt 243 enum-key ENUM 244 | ENUM CLASS 245 | ENUM STRUCT 246 enum-name IDENTIFIER 247 enum-specifier enum-head OPEN_BRACE enumerator-list-opt CLOSE_BRACE 248 | enum-head OPEN_BRACE enumerator-list COMMA CLOSE_BRACE 266 explicit-specifier EXPLICIT OPEN_PAREN constant-expression CLOSE_PAREN 267 | EXPLICIT 329 function-specifier VIRTUAL 330 | explicit-specifier 376 labeled-statement attribute-specifier-seq-opt IDENTIFIER COLON statement 377 | attribute-specifier-seq-opt CASE constant-expression COLON statement 378 | attribute-specifier-seq-opt DEFAULT COLON statement 444 namespace-alias IDENTIFIER 445 namespace-alias-definition NAMESPACE IDENTIFIER EQ qualified-namespace-specifier SEMICOLON 450 namespace-name IDENTIFIER 451 | namespace-alias 452 nested-name-specifier SCOPE 453 | type-name SCOPE 454 | namespace-name SCOPE 455 | decltype-specifier SCOPE 456 | nested-name-specifier IDENTIFIER SCOPE 457 | nested-name-specifier TEMPLATE-opt simple-template-id SCOPE 458 nested-name-specifier-opt %empty [IDENTIFIER] 459 | nested-name-specifier 496 opaque-enum-declaration enum-key attribute-specifier-seq-opt enum-head-name enum-base-opt SEMICOLON 554 placeholder-type-specifier type-constraint-opt AUTO 555 | type-constraint-opt DECLTYPE OPEN_PAREN AUTO CLOSE_PAREN 628 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement 639 simple-declaration decl-specifier-seq init-declarator-list-opt SEMICOLON 640 | attribute-specifier-seq decl-specifier-seq init-declarator-list SEMICOLON 641 | attribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE initializer SEMICOLON 643 simple-template-id template-name LESS template-argument-list-opt GREATER 644 simple-type-specifier nested-name-specifier-opt type-name 645 | nested-name-specifier TEMPLATE simple-template-id 646 | decltype-specifier 647 | placeholder-type-specifier 648 | nested-name-specifier-opt template-name 649 | CHAR 650 | CHAR8_T 651 | CHAR16_T 652 | CHAR32_T 653 | WCHAR_T 654 | BOOL 655 | SHORT 656 | INT 657 | LONG 658 | SIGNED 659 | UNSIGNED 660 | FLOAT 661 | DOUBLE 662 | VOID 663 statement labeled-statement 664 | attribute-specifier-seq-opt expression-statement 665 | attribute-specifier-seq-opt compound-statement 666 | attribute-specifier-seq-opt selection-statement 667 | attribute-specifier-seq-opt iteration-statement 668 | attribute-specifier-seq-opt jump-statement 669 | declaration-statement 670 | attribute-specifier-seq-opt try-block 675 static_assert-declaration STATIC_ASSERT OPEN_PAREN constant-expression CLOSE_PAREN SEMICOLON 676 | STATIC_ASSERT OPEN_PAREN constant-expression COMMA string-literal CLOSE_PAREN SEMICOLON 677 storage-class-specifier STATIC 678 | THREAD_LOCAL 679 | EXTERN 680 | MUTABLE 695 template-name IDENTIFIER 707 type-constraint nested-name-specifier-opt concept-name 708 | nested-name-specifier-opt concept-name LESS template-argument-list-opt GREATER 709 type-constraint-opt %empty [DECLTYPE, AUTO] 710 | type-constraint 712 type-name class-name 713 | enum-name 714 | typedef-name 724 type-specifier simple-type-specifier 725 | elaborated-type-specifier 726 | typename-specifier 727 | cv-qualifier 730 typedef-name IDENTIFIER 731 | simple-template-id 732 typename-specifier TYPENAME nested-name-specifier IDENTIFIER 733 | TYPENAME nested-name-specifier TEMPLATE-opt simple-template-id 762 using-declaration USING using-declarator-list SEMICOLON 766 using-directive attribute-specifier-seq-opt USING NAMESPACE nested-name-specifier-opt namespace-name SEMICOLON 767 using-enum-declaration USING elaborated-enum-specifier SEMICOLON CONSTEXPR shift, and go to state 1 EXTERN shift, and go to state 149 IDENTIFIER shift, and go to state 4 INLINE shift, and go to state 150 SCOPE shift, and go to state 6 TYPENAME shift, and go to state 8 VIRTUAL shift, and go to state 9 USING shift, and go to state 10 CLASS shift, and go to state 12 STRUCT shift, and go to state 13 UNION shift, and go to state 14 CONST shift, and go to state 15 VOLATILE shift, and go to state 16 FRIEND shift, and go to state 17 TYPEDEF shift, and go to state 18 CONSTEVAL shift, and go to state 19 CONSTINIT shift, and go to state 20 DECLTYPE shift, and go to state 21 ENUM shift, and go to state 22 EXPLICIT shift, and go to state 23 NAMESPACE shift, and go to state 970 CHAR shift, and go to state 27 CHAR8_T shift, and go to state 28 CHAR16_T shift, and go to state 29 CHAR32_T shift, and go to state 30 WCHAR_T shift, and go to state 31 BOOL shift, and go to state 32 SHORT shift, and go to state 33 INT shift, and go to state 34 LONG shift, and go to state 35 SIGNED shift, and go to state 36 UNSIGNED shift, and go to state 37 FLOAT shift, and go to state 38 DOUBLE shift, and go to state 39 VOID shift, and go to state 40 STATIC_ASSERT shift, and go to state 41 STATIC shift, and go to state 42 THREAD_LOCAL shift, and go to state 43 MUTABLE shift, and go to state 44 CONSTEXPR [reduce using rule 83 (attribute-specifier-seq-opt)] EXTERN [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 83 (attribute-specifier-seq-opt)] IDENTIFIER [reduce using rule 458 (nested-name-specifier-opt)] INLINE [reduce using rule 83 (attribute-specifier-seq-opt)] SCOPE [reduce using rule 83 (attribute-specifier-seq-opt)] TYPENAME [reduce using rule 83 (attribute-specifier-seq-opt)] VIRTUAL [reduce using rule 83 (attribute-specifier-seq-opt)] USING [reduce using rule 83 (attribute-specifier-seq-opt)] CLASS [reduce using rule 83 (attribute-specifier-seq-opt)] STRUCT [reduce using rule 83 (attribute-specifier-seq-opt)] UNION [reduce using rule 83 (attribute-specifier-seq-opt)] CONST [reduce using rule 83 (attribute-specifier-seq-opt)] VOLATILE [reduce using rule 83 (attribute-specifier-seq-opt)] FRIEND [reduce using rule 83 (attribute-specifier-seq-opt)] TYPEDEF [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTEVAL [reduce using rule 83 (attribute-specifier-seq-opt)] CONSTINIT [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 83 (attribute-specifier-seq-opt)] DECLTYPE [reduce using rule 709 (type-constraint-opt)] ENUM [reduce using rule 83 (attribute-specifier-seq-opt)] EXPLICIT [reduce using rule 83 (attribute-specifier-seq-opt)] AUTO reduce using rule 83 (attribute-specifier-seq-opt) AUTO [reduce using rule 709 (type-constraint-opt)] CHAR [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR8_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR16_T [reduce using rule 83 (attribute-specifier-seq-opt)] CHAR32_T [reduce using rule 83 (attribute-specifier-seq-opt)] WCHAR_T [reduce using rule 83 (attribute-specifier-seq-opt)] BOOL [reduce using rule 83 (attribute-specifier-seq-opt)] SHORT [reduce using rule 83 (attribute-specifier-seq-opt)] INT [reduce using rule 83 (attribute-specifier-seq-opt)] LONG [reduce using rule 83 (attribute-specifier-seq-opt)] SIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] UNSIGNED [reduce using rule 83 (attribute-specifier-seq-opt)] FLOAT [reduce using rule 83 (attribute-specifier-seq-opt)] DOUBLE [reduce using rule 83 (attribute-specifier-seq-opt)] VOID [reduce using rule 83 (attribute-specifier-seq-opt)] STATIC [reduce using rule 83 (attribute-specifier-seq-opt)] THREAD_LOCAL [reduce using rule 83 (attribute-specifier-seq-opt)] MUTABLE [reduce using rule 83 (attribute-specifier-seq-opt)] $default reduce using rule 83 (attribute-specifier-seq-opt) alias-declaration go to state 47 asm-declaration go to state 48 attribute-specifier-seq go to state 971 attribute-specifier-seq-opt go to state 972 block-declaration go to state 973 class-head go to state 53 class-key go to state 54 class-name go to state 55 class-specifier go to state 56 cv-qualifier go to state 57 decl-specifier go to state 58 decl-specifier-seq go to state 59 declaration-statement go to state 974 decltype-specifier go to state 63 defining-type-specifier go to state 65 elaborated-enum-specifier go to state 66 elaborated-type-specifier go to state 67 enum-head go to state 69 enum-key go to state 70 enum-name go to state 71 enum-specifier go to state 72 explicit-specifier go to state 154 function-specifier go to state 79 labeled-statement go to state 975 namespace-alias go to state 85 namespace-alias-definition go to state 86 namespace-name go to state 88 nested-name-specifier go to state 89 nested-name-specifier-opt go to state 90 opaque-enum-declaration go to state 93 placeholder-type-specifier go to state 94 simple-declaration go to state 95 simple-template-id go to state 96 simple-type-specifier go to state 97 statement go to state 1323 static_assert-declaration go to state 98 storage-class-specifier go to state 99 template-name go to state 102 type-constraint go to state 104 type-constraint-opt go to state 105 type-name go to state 106 type-specifier go to state 107 typedef-name go to state 108 typename-specifier go to state 109 using-declaration go to state 111 using-directive go to state 112 using-enum-declaration go to state 113

State 1322

321 for-range-declarationattribute-specifier-seq-opt decl-specifier-seq ref-qualifier-opt OPEN_SQUARE identifier-list CLOSE_SQUARE $default reduce using rule 321 (for-range-declaration)

State 1323

628 selection-statementIF CONSTEXPR-opt OPEN_PAREN init-statement-opt condition CLOSE_PAREN statement ELSE statement $default reduce using rule 628 (selection-statement)